diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,6 +1,6 @@ [package] name = "cargo" -version = "0.67.1" +version = "0.68.0" edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://crates.io" @@ -16,17 +16,16 @@ path = "src/cargo/lib.rs" [dependencies] -atty = "0.2" base64 = "0.13.1" bytesize = "1.0" cargo-platform = { path = "crates/cargo-platform", version = "0.1.2" } -cargo-util = { path = "crates/cargo-util", version = "0.2.1" } -crates-io = { path = "crates/crates-io", version = "0.34.0" } -curl = { version = "0.4.43", features = ["http2"] } -curl-sys = "0.4.55" -env_logger = "0.9.0" +cargo-util = { path = "crates/cargo-util", version = "0.2.3" } +crates-io = { path = "crates/crates-io", version = "0.35.0" } +curl = { version = "0.4.44", features = ["http2"] } +curl-sys = "0.4.59" +env_logger = "0.10.0" pretty_env_logger = { version = "0.4", optional = true } -anyhow = "1.0" +anyhow = "1.0.47" filetime = "0.2.9" flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } git2 = "0.16.0" @@ -35,9 +34,11 @@ hex = "0.4" hmac = "0.12.1" home = "0.5" +http-auth = { version = "0.1.6", default-features = false } humantime = "2.0.0" indexmap = "1" ignore = "0.4.7" +is-terminal = "0.4.0" lazy_static = "1.2.0" jobserver = "0.1.24" lazycell = "1.2.0" @@ -104,7 +105,7 @@ cargo-test-macro = { path = "crates/cargo-test-macro" } cargo-test-support = { path = "crates/cargo-test-support" } same-file = "1.0.6" -snapbox = { version = "0.3.0", features = ["diff", "path"] } +snapbox = { version = "0.4.0", features = ["diff", "path"] } [build-dependencies] flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/CHANGELOG.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/CHANGELOG.md 2023-01-10 13:38:26.000000000 +0000 @@ -1,5 +1,37 @@ # Changelog +## Cargo 1.67 (2023-01-26) +[7e484fc1...HEAD](https://github.com/rust-lang/cargo/compare/7e484fc1...HEAD) + +### Added + +- `cargo remove` now cleans up the root workspace manifest after a + successful removal of an inherited dependency from a workspace member. + [#11242](https://github.com/rust-lang/cargo/pull/11242) +- `cargo package` and `cargo publish` now report total and compressed crate size + after packaging. + [#11270](https://github.com/rust-lang/cargo/pull/11270) + +### Changed + +- ❗ Cargo now reuses the value of `$CARGO` if it's already set in the environment, + and forwards the value when executing external subcommands and build scripts. + [#11285](https://github.com/rust-lang/cargo/pull/11285) +- Updated the internal HTTP library libcurl with various fixes and updates. + [#11307](https://github.com/rust-lang/cargo/pull/11307) + [#11326](https://github.com/rust-lang/cargo/pull/11326) + +### Fixed + +- Fixed `cargo clean` for removing fingerprints and build script + artifacts of only the requested package + [#10621](https://github.com/rust-lang/cargo/pull/10621) + +### Nightly only + +- Suggests `cargo fix` when some compilation warnings/errors can be auto-fixed. + [#10989](https://github.com/rust-lang/cargo/pull/10989) + ## Cargo 1.66.1 (2023-01-10) ### Fixed @@ -7,18 +39,107 @@ Added validation of SSH host keys for git URLs. See [the docs](https://doc.rust-lang.org/cargo/appendix/git-authentication.html#ssh-known-hosts) for more information on how to configure the known host keys. - ## Cargo 1.66 (2022-12-15) -[08250398...HEAD](https://github.com/rust-lang/cargo/compare/08250398...HEAD) +[08250398...rust-1.66.0](https://github.com/rust-lang/cargo/compare/08250398...rust-1.66.0) ### Added +- 🎉 Added `cargo remove` command for removing dependencies from `Cargo.toml`. + [docs](https://doc.rust-lang.org/nightly/cargo/commands/cargo-remove.html) + [#11059](https://github.com/rust-lang/cargo/pull/11059) + [#11099](https://github.com/rust-lang/cargo/pull/11099) + [#11193](https://github.com/rust-lang/cargo/pull/11193) + [#11204](https://github.com/rust-lang/cargo/pull/11204) + [#11227](https://github.com/rust-lang/cargo/pull/11227) +- Added support for git dependencies having git submodules with relative paths. + [#11106](https://github.com/rust-lang/cargo/pull/11106) +- Cargo now sends requests with a `Accept-Encoding` header to registries. + [#11292](https://github.com/rust-lang/cargo/pull/11292) +- Cargo now forwards non-UTF8 arguments to external subcommands. + [#11118](https://github.com/rust-lang/cargo/pull/11118) + ### Changed +- ❗ Disambiguate source replacements from various angles. + [RFC-3289](https://github.com/rust-lang/rfcs/blob/master/text/3289-source_replacement_ambiguity.md) + [#10907](https://github.com/rust-lang/cargo/pull/10907) + - When the crates-io source is replaced, the user is required to specify which registry to use with `--registry ` when performing an API operation. + - Publishing to source-replaced crates.io is no longer permitted using the crates.io token (`registry.token`). + - In source replacement, the `replace-with` key can reference the name of an alternative registry in the `[registries]` table. +- ❗ `cargo publish` now blocks until it sees the published package in the index. + [#11062](https://github.com/rust-lang/cargo/pull/11062) + [#11210](https://github.com/rust-lang/cargo/pull/11210) + [#11216](https://github.com/rust-lang/cargo/pull/11216) + [#11255](https://github.com/rust-lang/cargo/pull/11255) +- Cargo now uses the clap v4 library for command-line argument parsing. + [#11116](https://github.com/rust-lang/cargo/pull/11116) + [#11119](https://github.com/rust-lang/cargo/pull/11119) + [#11159](https://github.com/rust-lang/cargo/pull/11159) + [#11190](https://github.com/rust-lang/cargo/pull/11190) + [#11239](https://github.com/rust-lang/cargo/pull/11239) + [#11280](https://github.com/rust-lang/cargo/pull/11280) +- Cargo now only warns on a user-defined alias shadowing an external command. + [#11170](https://github.com/rust-lang/cargo/pull/11170) +- Several documentation improvements. + [#10770](https://github.com/rust-lang/cargo/pull/10770) + [#10938](https://github.com/rust-lang/cargo/pull/10938) + [#11082](https://github.com/rust-lang/cargo/pull/11082) + [#11093](https://github.com/rust-lang/cargo/pull/11093) + [#11157](https://github.com/rust-lang/cargo/pull/11157) + [#11185](https://github.com/rust-lang/cargo/pull/11185) + [#11207](https://github.com/rust-lang/cargo/pull/11207) + [#11219](https://github.com/rust-lang/cargo/pull/11219) + [#11240](https://github.com/rust-lang/cargo/pull/11240) + [#11241](https://github.com/rust-lang/cargo/pull/11241) + [#11282](https://github.com/rust-lang/cargo/pull/11282) + ### Fixed +- ❗ Config file loaded via `cargo --config ` now takes priority over + environment variables. This is a documented behaviour but the old + implementation accidentally got it wrong. + [#11077](https://github.com/rust-lang/cargo/pull/11077) +- ❗ Cargo collects rustflags in `target.cfg(…).rustflags` more correctly + and warns if that's not enough for convergence. + [#11114](https://github.com/rust-lang/cargo/pull/11114) +- Final artifacts not removed by linker should be removed before a compilation gets started. + [#11122](https://github.com/rust-lang/cargo/pull/11122) +- `cargo add` now reports unknown features in a more discoverable manner. + [#11098](https://github.com/rust-lang/cargo/pull/11098) +- Cargo now reports command aliasing failure with more error contexts. + [#11087](https://github.com/rust-lang/cargo/pull/11087) +- A better error message when `cargo login` prompt receives empty input. + [#11145](https://github.com/rust-lang/cargo/pull/11145) +- A better error message for fields with wrong types + where workspace inheritance is supported. + [#11113](https://github.com/rust-lang/cargo/pull/11113) +- A better error message when mixing feature syntax `dep:` with `/`. + [#11172](https://github.com/rust-lang/cargo/pull/11172) +- A better error message when publishing but `package.publish` is `false` + in the manifest. + [#11280](https://github.com/rust-lang/cargo/pull/11280) + ### Nightly only +- Added new config option `publish.timeout` behind `-Zpublish-timeout`. + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#publish-timeout) + [#11230](https://github.com/rust-lang/cargo/pull/11230) +- Added retry support to sparse registries. + [#11069](https://github.com/rust-lang/cargo/pull/11069) +- Fixed sparse registry lockfile urls containing `registry+sparse+`. + [#11177](https://github.com/rust-lang/cargo/pull/11177) +- Add new config option `registries.crates-io.protocol` + for controlling crates.io protocol. + [#11215](https://github.com/rust-lang/cargo/pull/11215) +- Removed `sparse+` prefix for index.crates.io. + [#11247](https://github.com/rust-lang/cargo/pull/11247) +- Fixed publishing with a dependency on a sparse registry. + [#11268](https://github.com/rust-lang/cargo/pull/11268) +- Fixed confusing error messages when using `-Zsparse-registry`. + [#11283](https://github.com/rust-lang/cargo/pull/11283) +- Fixed 410 gone response handling for sparse registries. + [#11286](https://github.com/rust-lang/cargo/pull/11286) + ## Cargo 1.65 (2022-11-03) [4fd148c4...rust-1.65.0](https://github.com/rust-lang/cargo/compare/4fd148c4...rust-1.65.0) @@ -83,6 +204,8 @@ - Scanning the package directory now ignores errors from broken but excluded symlink files. [#11008](https://github.com/rust-lang/cargo/pull/11008) +- Fixed deadlock when build scripts are waiting for input on stdin. + [#11257](https://github.com/rust-lang/cargo/pull/11257) ### Nightly @@ -210,7 +333,7 @@ - Added `-Zcheck-cfg=output` to support build-scripts declaring their supported set of `cfg` values with `cargo:rustc-check-cfg`. [#10539](https://github.com/rust-lang/cargo/pull/10539) -- `-Z http-registry` now uses https://index.crates.io/ when accessing crates-io. +- `-Z sparse-registry` now uses https://index.crates.io/ when accessing crates-io. [#10725](https://github.com/rust-lang/cargo/pull/10725) - Fixed formatting of `.workspace` key in `cargo add` for workspace inheritance. [#10705](https://github.com/rust-lang/cargo/pull/10705) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -12,14 +12,13 @@ cargo-test-macro = { path = "../cargo-test-macro" } cargo-util = { path = "../cargo-util" } crates-io = { path = "../crates-io" } -snapbox = { version = "0.3.0", features = ["diff", "path"] } +snapbox = { version = "0.4.0", features = ["diff", "path"] } filetime = "0.2" flate2 = { version = "1.0", default-features = false, features = ["zlib"] } git2 = "0.16.0" glob = "0.3" itertools = "0.10.0" lazy_static = "1.0" -remove_dir_all = "0.5" serde_json = "1.0" tar = { version = "0.4.38", default-features = false } termcolor = "1.1.2" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/compare.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/compare.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/compare.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/compare.rs 2023-01-10 13:38:26.000000000 +0000 @@ -168,12 +168,14 @@ ("[NOTE]", "note:"), ("[HELP]", "help:"), ("[DOCUMENTING]", " Documenting"), + ("[SCRAPING]", " Scraping"), ("[FRESH]", " Fresh"), ("[UPDATING]", " Updating"), ("[ADDING]", " Adding"), ("[REMOVING]", " Removing"), ("[DOCTEST]", " Doc-tests"), ("[PACKAGING]", " Packaging"), + ("[PACKAGED]", " Packaged"), ("[DOWNLOADING]", " Downloading"), ("[DOWNLOADED]", " Downloaded"), ("[UPLOADING]", " Uploading"), diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/lib.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/lib.rs 2023-01-10 13:38:26.000000000 +0000 @@ -410,8 +410,10 @@ /// Example: /// p.cargo("build --bin foo").run(); pub fn cargo(&self, cmd: &str) -> Execs { - let mut execs = self.process(&cargo_exe()); + let cargo = cargo_exe(); + let mut execs = self.process(&cargo); if let Some(ref mut p) = execs.process_builder { + p.env("CARGO", cargo); p.arg_line(cmd); } execs @@ -1328,7 +1330,9 @@ } pub fn cargo_process(s: &str) -> Execs { - let mut p = process(&cargo_exe()); + let cargo = cargo_exe(); + let mut p = process(&cargo); + p.env("CARGO", cargo); p.arg_line(s); execs().with_process_builder(p) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/paths.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/paths.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/paths.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/paths.rs 2023-01-10 13:38:26.000000000 +0000 @@ -141,7 +141,7 @@ // actually performing the removal, but we don't care all that much // for our tests. if meta.is_dir() { - if let Err(e) = remove_dir_all::remove_dir_all(self) { + if let Err(e) = fs::remove_dir_all(self) { panic!("failed to remove {:?}: {:?}", self, e) } } else if let Err(e) = fs::remove_file(self) { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/registry.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/registry.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-test-support/src/registry.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-test-support/src/registry.rs 2023-01-10 13:38:26.000000000 +0000 @@ -11,7 +11,7 @@ use std::io::{BufRead, BufReader, Read, Write}; use std::net::{SocketAddr, TcpListener, TcpStream}; use std::path::PathBuf; -use std::thread; +use std::thread::{self, JoinHandle}; use tar::{Builder, Header}; use url::Url; @@ -61,6 +61,8 @@ alternative: Option, /// If set, the authorization token for the registry. token: Option, + /// If set, the registry requires authorization for all operations. + auth_required: bool, /// If set, serves the index over http. http_index: bool, /// If set, serves the API over http. @@ -76,7 +78,7 @@ } pub struct TestRegistry { - _server: Option, + server: Option, index_url: Url, path: PathBuf, api_url: Url, @@ -98,6 +100,17 @@ .as_deref() .expect("registry was not configured with a token") } + + /// Shutdown the server thread and wait for it to stop. + /// `Drop` automatically stops the server, but this additionally + /// waits for the thread to stop. + pub fn join(self) { + if let Some(mut server) = self.server { + server.stop(); + let handle = server.handle.take().unwrap(); + handle.join().unwrap(); + } + } } impl RegistryBuilder { @@ -106,6 +119,7 @@ RegistryBuilder { alternative: None, token: None, + auth_required: false, http_api: false, http_index: false, api: true, @@ -160,6 +174,14 @@ self } + /// Sets this registry to require the authentication token for + /// all operations. + #[must_use] + pub fn auth_required(mut self) -> Self { + self.auth_required = true; + self + } + /// Operate the index over http #[must_use] pub fn http_index(mut self) -> Self { @@ -207,6 +229,7 @@ registry_path.clone(), dl_path, token.clone(), + self.auth_required, self.custom_responders, ); let index_url = if self.http_index { @@ -226,7 +249,7 @@ let registry = TestRegistry { api_url, index_url, - _server: server, + server, dl_url, path: registry_path, token, @@ -293,6 +316,11 @@ } } + let auth = if self.auth_required { + r#","auth-required":true"# + } else { + "" + }; let api = if self.api { format!(r#","api":"{}""#, registry.api_url) } else { @@ -302,7 +330,7 @@ repo(®istry.path) .file( "config.json", - &format!(r#"{{"dl":"{}"{api}}}"#, registry.dl_url), + &format!(r#"{{"dl":"{}"{api}{auth}}}"#, registry.dl_url), ) .build(); fs::create_dir_all(api_path.join("api/v1/crates")).unwrap(); @@ -442,6 +470,7 @@ pub struct HttpServerHandle { addr: SocketAddr, + handle: Option>, } impl HttpServerHandle { @@ -456,10 +485,8 @@ pub fn dl_url(&self) -> Url { Url::parse(&format!("http://{}/dl", self.addr.to_string())).unwrap() } -} -impl Drop for HttpServerHandle { - fn drop(&mut self) { + fn stop(&self) { if let Ok(mut stream) = TcpStream::connect(self.addr) { // shutdown the server let _ = stream.write_all(b"stop"); @@ -468,7 +495,14 @@ } } +impl Drop for HttpServerHandle { + fn drop(&mut self) { + self.stop(); + } +} + /// Request to the test http server +#[derive(Clone)] pub struct Request { pub url: Url, pub method: String, @@ -503,6 +537,7 @@ registry_path: PathBuf, dl_path: PathBuf, token: Option, + auth_required: bool, custom_responders: HashMap<&'static str, Box Response>>, } @@ -511,6 +546,7 @@ registry_path: PathBuf, dl_path: PathBuf, token: Option, + auth_required: bool, api_responders: HashMap< &'static str, Box Response>, @@ -523,10 +559,11 @@ registry_path, dl_path, token, + auth_required, custom_responders: api_responders, }; - thread::spawn(move || server.start()); - HttpServerHandle { addr } + let handle = Some(thread::spawn(move || server.start())); + HttpServerHandle { addr, handle } } fn start(&self) { @@ -614,7 +651,7 @@ /// Route the request fn route(&self, req: &Request) -> Response { let authorized = |mutatation: bool| { - if mutatation { + if mutatation || self.auth_required { self.token == req.authorization } else { assert!(req.authorization.is_none(), "unexpected token"); @@ -675,7 +712,9 @@ pub fn unauthorized(&self, _req: &Request) -> Response { Response { code: 401, - headers: vec![], + headers: vec![ + r#"WWW-Authenticate: Cargo login_url="https://test-registry-login/me""#.to_string(), + ], body: b"Unauthorized message from server.".to_vec(), } } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,6 +1,6 @@ [package] name = "cargo-util" -version = "0.2.2" +version = "0.2.3" edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://github.com/rust-lang/cargo" @@ -24,5 +24,5 @@ core-foundation = { version = "0.9.0", features = ["mac_os_10_7_support"] } [target.'cfg(windows)'.dependencies] -miow = "0.3.6" +miow = "0.5.0" winapi = { version = "0.3.9", features = ["consoleapi", "minwindef"] } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/src/paths.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/src/paths.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/src/paths.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/src/paths.rs 2023-01-10 13:38:26.000000000 +0000 @@ -18,18 +18,19 @@ /// environment variable this is will be used for, which is included in the /// error message. pub fn join_paths>(paths: &[T], env: &str) -> Result { - env::join_paths(paths.iter()) - .with_context(|| { - let paths = paths.iter().map(Path::new).collect::>(); - format!("failed to join path array: {:?}", paths) - }) - .with_context(|| { - format!( - "failed to join search paths together\n\ - Does ${} have an unterminated quote character?", - env - ) - }) + env::join_paths(paths.iter()).with_context(|| { + let mut message = format!( + "failed to join paths from `${env}` together\n\n\ + Check if any of path segments listed below contain an \ + unterminated quote character or path separator:" + ); + for path in paths { + use std::fmt::Write; + write!(&mut message, "\n {:?}", Path::new(path)).unwrap(); + } + + message + }) } /// Returns the name of the environment variable used for searching for @@ -743,3 +744,44 @@ // Errors are ignored, since it's an optional feature and failure // doesn't prevent Cargo from working } + +#[cfg(test)] +mod tests { + use super::join_paths; + + #[test] + fn join_paths_lists_paths_on_error() { + let valid_paths = vec!["/testing/one", "/testing/two"]; + // does not fail on valid input + let _joined = join_paths(&valid_paths, "TESTING1").unwrap(); + + #[cfg(unix)] + { + let invalid_paths = vec!["/testing/one", "/testing/t:wo/three"]; + let err = join_paths(&invalid_paths, "TESTING2").unwrap_err(); + assert_eq!( + err.to_string(), + "failed to join paths from `$TESTING2` together\n\n\ + Check if any of path segments listed below contain an \ + unterminated quote character or path separator:\ + \n \"/testing/one\"\ + \n \"/testing/t:wo/three\"\ + " + ); + } + #[cfg(windows)] + { + let invalid_paths = vec!["/testing/one", "/testing/t\"wo/three"]; + let err = join_paths(&invalid_paths, "TESTING2").unwrap_err(); + assert_eq!( + err.to_string(), + "failed to join paths from `$TESTING2` together\n\n\ + Check if any of path segments listed below contain an \ + unterminated quote character or path separator:\ + \n \"/testing/one\"\ + \n \"/testing/t\\\"wo/three\"\ + " + ); + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/src/process_builder.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/src/process_builder.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/cargo-util/src/process_builder.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/cargo-util/src/process_builder.rs 2023-01-10 13:38:26.000000000 +0000 @@ -203,8 +203,8 @@ /// /// Ref: /// - /// - https://doc.rust-lang.org/rustdoc/command-line-arguments.html#path-load-command-line-flags-from-a-path - /// - https://doc.rust-lang.org/rustc/command-line-arguments.html#path-load-command-line-flags-from-a-path> + /// - + /// - pub fn retry_with_argfile(&mut self, enabled: bool) -> &mut Self { self.retry_with_argfile = enabled; self diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/crates-io/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/crates-io/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/crates-io/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/crates-io/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,6 +1,6 @@ [package] name = "crates-io" -version = "0.34.0" +version = "0.35.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/crates-io/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/crates-io/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/crates-io/lib.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/crates-io/lib.rs 2023-01-10 13:38:26.000000000 +0000 @@ -21,6 +21,8 @@ token: Option, /// Curl handle for issuing requests. handle: Easy, + /// Whether to include the authorization token with all requests. + auth_required: bool, } #[derive(PartialEq, Clone, Copy)] @@ -199,11 +201,17 @@ /// handle.useragent("my_crawler (example.com/info)"); /// let mut reg = Registry::new_handle(String::from("https://crates.io"), None, handle); /// ``` - pub fn new_handle(host: String, token: Option, handle: Easy) -> Registry { + pub fn new_handle( + host: String, + token: Option, + handle: Easy, + auth_required: bool, + ) -> Registry { Registry { host, token, handle, + auth_required, } } @@ -377,7 +385,7 @@ headers.append("Accept: application/json")?; headers.append("Content-Type: application/json")?; - if authorized == Auth::Authorized { + if self.auth_required || authorized == Auth::Authorized { let token = match self.token.as_ref() { Some(s) => s, None => bail!("no upload token found, please run `cargo login`"), diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,6 +1,6 @@ [package] name = "cargo-credential" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential/src/lib.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential/src/lib.rs 2023-01-10 13:38:26.000000000 +0000 @@ -21,17 +21,17 @@ fn name(&self) -> &'static str; /// Retrieves a token for the given registry. - fn get(&self, registry_name: &str, api_url: &str) -> Result; + fn get(&self, index_url: &str) -> Result; /// Stores the given token for the given registry. - fn store(&self, registry_name: &str, api_url: &str, token: &str) -> Result<(), Error>; + fn store(&self, index_url: &str, token: &str, name: Option<&str>) -> Result<(), Error>; /// Removes the token for the given registry. /// /// If the user is not logged in, this should print a message to stderr if /// possible indicating that the user is not currently logged in, and /// return `Ok`. - fn erase(&self, registry_name: &str, api_url: &str) -> Result<(), Error>; + fn erase(&self, index_url: &str) -> Result<(), Error>; } /// Runs the credential interaction by processing the command-line and @@ -54,17 +54,17 @@ .skip_while(|arg| arg.starts_with('-')) .next() .ok_or_else(|| "first argument must be the {action}")?; - let registry_name = env("CARGO_REGISTRY_NAME")?; - let api_url = env("CARGO_REGISTRY_API_URL")?; + let index_url = env("CARGO_REGISTRY_INDEX_URL")?; + let name = std::env::var("CARGO_REGISTRY_NAME_OPT").ok(); let result = match which.as_ref() { - "get" => credential.get(®istry_name, &api_url).and_then(|token| { + "get" => credential.get(&index_url).and_then(|token| { println!("{}", token); Ok(()) }), "store" => { - read_token().and_then(|token| credential.store(®istry_name, &api_url, &token)) + read_token().and_then(|token| credential.store(&index_url, &token, name.as_deref())) } - "erase" => credential.erase(®istry_name, &api_url), + "erase" => credential.erase(&index_url), _ => { return Err(format!( "unexpected command-line argument `{}`, expected get/store/erase", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,12 +1,12 @@ [package] name = "cargo-credential-1password" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a 1password vault." [dependencies] -cargo-credential = { version = "0.1.0", path = "../cargo-credential" } +cargo-credential = { version = "0.2.0", path = "../cargo-credential" } serde = { version = "1.0.117", features = ["derive"] } serde_json = "1.0.59" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/src/main.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-1password/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -41,7 +41,7 @@ #[derive(Deserialize)] struct Overview { - title: String, + url: String, } impl OnePasswordKeychain { @@ -175,11 +175,7 @@ Ok(buffer) } - fn search( - &self, - session: &Option, - registry_name: &str, - ) -> Result, Error> { + fn search(&self, session: &Option, index_url: &str) -> Result, Error> { let cmd = self.make_cmd( session, &[ @@ -196,15 +192,15 @@ .map_err(|e| format!("failed to deserialize JSON from 1password list: {}", e))?; let mut matches = items .into_iter() - .filter(|item| item.overview.title == registry_name); + .filter(|item| item.overview.url == index_url); match matches.next() { Some(login) => { // Should this maybe just sort on `updatedAt` and return the newest one? if matches.next().is_some() { return Err(format!( - "too many 1password logins match registry name {}, \ + "too many 1password logins match registry `{}`, \ consider deleting the excess entries", - registry_name + index_url ) .into()); } @@ -214,7 +210,13 @@ } } - fn modify(&self, session: &Option, uuid: &str, token: &str) -> Result<(), Error> { + fn modify( + &self, + session: &Option, + uuid: &str, + token: &str, + _name: Option<&str>, + ) -> Result<(), Error> { let cmd = self.make_cmd( session, &["edit", "item", uuid, &format!("password={}", token)], @@ -226,10 +228,14 @@ fn create( &self, session: &Option, - registry_name: &str, - api_url: &str, + index_url: &str, token: &str, + name: Option<&str>, ) -> Result<(), Error> { + let title = match name { + Some(name) => format!("Cargo registry token for {}", name), + None => "Cargo registry token".to_string(), + }; let cmd = self.make_cmd( session, &[ @@ -237,9 +243,9 @@ "item", "Login", &format!("password={}", token), - &format!("url={}", api_url), + &format!("url={}", index_url), "--title", - registry_name, + &title, "--tags", CARGO_TAG, ], @@ -276,36 +282,36 @@ env!("CARGO_PKG_NAME") } - fn get(&self, registry_name: &str, _api_url: &str) -> Result { + fn get(&self, index_url: &str) -> Result { let session = self.signin()?; - if let Some(uuid) = self.search(&session, registry_name)? { + if let Some(uuid) = self.search(&session, index_url)? { self.get_token(&session, &uuid) } else { return Err(format!( "no 1password entry found for registry `{}`, try `cargo login` to add a token", - registry_name + index_url ) .into()); } } - fn store(&self, registry_name: &str, api_url: &str, token: &str) -> Result<(), Error> { + fn store(&self, index_url: &str, token: &str, name: Option<&str>) -> Result<(), Error> { let session = self.signin()?; // Check if an item already exists. - if let Some(uuid) = self.search(&session, registry_name)? { - self.modify(&session, &uuid, token) + if let Some(uuid) = self.search(&session, index_url)? { + self.modify(&session, &uuid, token, name) } else { - self.create(&session, registry_name, api_url, token) + self.create(&session, index_url, token, name) } } - fn erase(&self, registry_name: &str, _api_url: &str) -> Result<(), Error> { + fn erase(&self, index_url: &str) -> Result<(), Error> { let session = self.signin()?; // Check if an item already exists. - if let Some(uuid) = self.search(&session, registry_name)? { + if let Some(uuid) = self.search(&session, index_url)? { self.delete(&session, &uuid)?; } else { - eprintln!("not currently logged in to `{}`", registry_name); + eprintln!("not currently logged in to `{}`", index_url); } Ok(()) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,13 +1,13 @@ [package] name = "cargo-credential-gnome-secret" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with GNOME libsecret." [dependencies] -cargo-credential = { version = "0.1.0", path = "../cargo-credential" } +cargo-credential = { version = "0.2.0", path = "../cargo-credential" } [build-dependencies] pkg-config = "0.3.19" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/src/main.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-gnome-secret/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -76,8 +76,8 @@ struct GnomeSecret; -fn label(registry_name: &str) -> CString { - CString::new(format!("cargo-registry:{}", registry_name)).unwrap() +fn label(index_url: &str) -> CString { + CString::new(format!("cargo-registry:{}", index_url)).unwrap() } fn schema() -> SecretSchema { @@ -86,10 +86,6 @@ attr_type: SecretSchemaAttributeType::String, }; 32]; attributes[0] = SecretSchemaAttribute { - name: b"registry\0".as_ptr() as *const gchar, - attr_type: SecretSchemaAttributeType::String, - }; - attributes[1] = SecretSchemaAttribute { name: b"url\0".as_ptr() as *const gchar, attr_type: SecretSchemaAttributeType::String, }; @@ -105,22 +101,18 @@ env!("CARGO_PKG_NAME") } - fn get(&self, registry_name: &str, api_url: &str) -> Result { + fn get(&self, index_url: &str) -> Result { let mut error: *mut GError = null_mut(); - let attr_registry = CString::new("registry").unwrap(); let attr_url = CString::new("url").unwrap(); - let registry_name_c = CString::new(registry_name).unwrap(); - let api_url_c = CString::new(api_url).unwrap(); + let index_url_c = CString::new(index_url).unwrap(); let schema = schema(); unsafe { let token_c = secret_password_lookup_sync( &schema, null_mut(), &mut error, - attr_registry.as_ptr(), - registry_name_c.as_ptr(), attr_url.as_ptr(), - api_url_c.as_ptr(), + index_url_c.as_ptr(), null() as *const gchar, ); if !error.is_null() { @@ -131,7 +123,7 @@ .into()); } if token_c.is_null() { - return Err(format!("cannot find token for {}", registry_name).into()); + return Err(format!("cannot find token for {}", index_url).into()); } let token = CStr::from_ptr(token_c) .to_str() @@ -141,14 +133,12 @@ } } - fn store(&self, registry_name: &str, api_url: &str, token: &str) -> Result<(), Error> { - let label = label(registry_name); + fn store(&self, index_url: &str, token: &str, name: Option<&str>) -> Result<(), Error> { + let label = label(name.unwrap_or(index_url)); let token = CString::new(token).unwrap(); let mut error: *mut GError = null_mut(); - let attr_registry = CString::new("registry").unwrap(); let attr_url = CString::new("url").unwrap(); - let registry_name_c = CString::new(registry_name).unwrap(); - let api_url_c = CString::new(api_url).unwrap(); + let index_url_c = CString::new(index_url).unwrap(); let schema = schema(); unsafe { secret_password_store_sync( @@ -158,10 +148,8 @@ token.as_ptr(), null_mut(), &mut error, - attr_registry.as_ptr(), - registry_name_c.as_ptr(), attr_url.as_ptr(), - api_url_c.as_ptr(), + index_url_c.as_ptr(), null() as *const gchar, ); if !error.is_null() { @@ -175,22 +163,18 @@ Ok(()) } - fn erase(&self, registry_name: &str, api_url: &str) -> Result<(), Error> { + fn erase(&self, index_url: &str) -> Result<(), Error> { let schema = schema(); let mut error: *mut GError = null_mut(); - let attr_registry = CString::new("registry").unwrap(); let attr_url = CString::new("url").unwrap(); - let registry_name_c = CString::new(registry_name).unwrap(); - let api_url_c = CString::new(api_url).unwrap(); + let index_url_c = CString::new(index_url).unwrap(); unsafe { secret_password_clear_sync( &schema, null_mut(), &mut error, - attr_registry.as_ptr(), - registry_name_c.as_ptr(), attr_url.as_ptr(), - api_url_c.as_ptr(), + index_url_c.as_ptr(), null() as *const gchar, ); if !error.is_null() { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,11 +1,11 @@ [package] name = "cargo-credential-macos-keychain" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens in a macOS keychain." [dependencies] -cargo-credential = { version = "0.1.0", path = "../cargo-credential" } +cargo-credential = { version = "0.2.0", path = "../cargo-credential" } security-framework = "2.0.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/src/main.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-macos-keychain/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -17,17 +17,17 @@ env!("CARGO_PKG_NAME") } - fn get(&self, registry_name: &str, _api_url: &str) -> Result { + fn get(&self, index_url: &str) -> Result { let keychain = SecKeychain::default().unwrap(); - let service_name = registry(registry_name); + let service_name = registry(index_url); let (pass, _item) = keychain.find_generic_password(&service_name, ACCOUNT)?; String::from_utf8(pass.as_ref().to_vec()) .map_err(|_| "failed to convert token to UTF8".into()) } - fn store(&self, registry_name: &str, _api_url: &str, token: &str) -> Result<(), Error> { + fn store(&self, index_url: &str, token: &str, name: Option<&str>) -> Result<(), Error> { let keychain = SecKeychain::default().unwrap(); - let service_name = registry(registry_name); + let service_name = registry(name.unwrap_or(index_url)); if let Ok((_pass, mut item)) = keychain.find_generic_password(&service_name, ACCOUNT) { item.set_password(token.as_bytes())?; } else { @@ -36,9 +36,9 @@ Ok(()) } - fn erase(&self, registry_name: &str, _api_url: &str) -> Result<(), Error> { + fn erase(&self, index_url: &str) -> Result<(), Error> { let keychain = SecKeychain::default().unwrap(); - let service_name = registry(registry_name); + let service_name = registry(index_url); let (_pass, item) = keychain.find_generic_password(&service_name, ACCOUNT)?; item.delete(); Ok(()) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -1,11 +1,11 @@ [package] name = "cargo-credential-wincred" -version = "0.1.0" +version = "0.2.0" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/rust-lang/cargo" description = "A Cargo credential process that stores tokens with Windows Credential Manager." [dependencies] -cargo-credential = { version = "0.1.0", path = "../cargo-credential" } +cargo-credential = { version = "0.2.0", path = "../cargo-credential" } winapi = { version = "0.3.9", features = ["wincred", "winerror", "impl-default"] } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/src/main.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/credential/cargo-credential-wincred/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -29,8 +29,8 @@ env!("CARGO_PKG_NAME") } - fn get(&self, registry_name: &str, _api_url: &str) -> Result { - let target_name = target_name(registry_name); + fn get(&self, index_url: &str) -> Result { + let target_name = target_name(index_url); let mut p_credential: wincred::PCREDENTIALW = std::ptr::null_mut(); unsafe { if wincred::CredReadW( @@ -52,10 +52,13 @@ } } - fn store(&self, registry_name: &str, _api_url: &str, token: &str) -> Result<(), Error> { + fn store(&self, index_url: &str, token: &str, name: Option<&str>) -> Result<(), Error> { let token = token.as_bytes(); - let target_name = target_name(registry_name); - let comment = wstr("Cargo registry token"); + let target_name = target_name(index_url); + let comment = match name { + Some(name) => wstr(&format!("Cargo registry token for {}", name)), + None => wstr("Cargo registry token"), + }; let mut credential = wincred::CREDENTIALW { Flags: 0, Type: wincred::CRED_TYPE_GENERIC, @@ -78,14 +81,14 @@ Ok(()) } - fn erase(&self, registry_name: &str, _api_url: &str) -> Result<(), Error> { - let target_name = target_name(registry_name); + fn erase(&self, index_url: &str) -> Result<(), Error> { + let target_name = target_name(index_url); let result = unsafe { wincred::CredDeleteW(target_name.as_ptr(), wincred::CRED_TYPE_GENERIC, 0) }; if result != TRUE { let err = std::io::Error::last_os_error(); if err.raw_os_error() == Some(winerror::ERROR_NOT_FOUND as i32) { - eprintln!("not currently logged in to `{}`", registry_name); + eprintln!("not currently logged in to `{}`", index_url); return Ok(()); } return Err(format!("failed to remove token: {}", err).into()); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/resolver-tests/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/crates/resolver-tests/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/resolver-tests/Cargo.toml 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/resolver-tests/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -9,4 +9,4 @@ proptest = "0.9.1" lazy_static = "1.3.0" varisat = "0.2.1" -atty = "0.2.11" +is-terminal = "0.4.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/crates/resolver-tests/tests/resolve.rs cargo-0.68.0+ds0ubuntu0.libgit2/crates/resolver-tests/tests/resolve.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/crates/resolver-tests/tests/resolve.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/crates/resolver-tests/tests/resolve.rs 2023-01-10 13:38:26.000000000 +0000 @@ -21,7 +21,7 @@ proptest! { #![proptest_config(ProptestConfig { max_shrink_iters: - if is_ci() || !atty::is(atty::Stream::Stderr) { + if is_ci() || !is_terminal::IsTerminal::is_terminal(&std::io::stderr()){ // This attempts to make sure that CI will fail fast, 0 } else { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/changelog cargo-0.68.0+ds0ubuntu0.libgit2/debian/changelog --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/changelog 2023-06-07 07:45:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/changelog 2023-10-19 11:03:01.000000000 +0000 @@ -1,10 +1,6 @@ -cargo (0.67.1+ds0ubuntu0.libgit2-0ubuntu0.16.04.1~mt1) xenial; urgency=medium +cargo (0.68.0+ds0ubuntu0.libgit2-0ubuntu0.16.04.1~mt1) xenial; urgency=medium - * Backport to Xenial (LP: #2005123) - - d/control: Relax debhelper version requirements - - d/control: Remove the requirements of dh-cargo - * Re-enable libgit2 vendoring: - - d/control: Remove libgit2-dev and libhttp-parser-dev from B-D + * Backport to Xenial * Drop ssh_key_from_memory from the git2 default features, as that results in the libgit2 build depending on a version of libssh2 that is too recent - add debian/patches/git2-no-ssh_key_from_memory.patch @@ -14,7 +10,38 @@ - add debian/patches/ignore-libcurl-errors.patch - update debian/patches/series - -- Rico Tzschichholz Wed, 07 Jun 2023 09:45:55 +0200 + -- Rico Tzschichholz Thu, 19 Oct 2023 13:03:01 +0200 + +cargo (0.68.0+ds0ubuntu0.libgit2-0ubuntu0.18.04.1) bionic; urgency=medium + + * Backport to Bionic (LP: #2007608) + * Re-enable libgit2 vendoring: + - d/control: remove libgit2-dev and libhttp-parser-dev from B-D + + -- Zixing Liu Sun, 26 Feb 2023 18:04:16 -0700 + +cargo (0.68.0+ds0ubuntu1-0ubuntu1) lunar; urgency=medium + + * Update to Cargo 0.68.0 (LP: #2007608) + - d/s/debian-cargo-vendor: Add a step to remove windows-sys + and their friends from vendored sources + - d/debcargo-conf.patch: Rebase patches + - d/control: Bump rustc requirements + - d/control: Update vendored sources information + - d/copyright: update copyright information for vendored dependencies + - d/vendor-tarball-unsuspicious.txt: update unsuspicious list to include + some newly added source files + * vendor: removed windows-sys and its related libraries from the tree + to avoid including questionably licensed binary blobs from Microsoft + * d/p/2901-ubuntu-is-terminal-remove-windows-sys.patch: a new patch to + remove the windows-sys dependency from the is-terminal library + * d/p/2900-ubuntu-remove-miow-dependency.patch: add a new patch to + remove the miow dependency from Cargo to avoid introducing windows-sys + into the vendor tree (windows-sys is a transitive dependency of miow) + * .gitignore: only ignore the top-level target folder so that any tests + called "target" will still be included in the source tree + + -- Zixing Liu Fri, 17 Feb 2023 00:28:52 -0700 cargo (0.67.1+ds0ubuntu1-0ubuntu1) lunar; urgency=medium diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/control cargo-0.68.0+ds0ubuntu0.libgit2/debian/control --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/control 2023-06-07 07:45:26.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/control 2023-10-19 11:02:14.000000000 +0000 @@ -12,8 +12,8 @@ debhelper (>= 9~), dpkg-dev (>= 1.17.14), cargo:native (>= 0.56.0), - rustc:native (>= 1.63), - libstd-rust-dev (>= 1.63), + rustc:native (>= 1.65), + libstd-rust-dev (>= 1.65), pkg-config, bash-completion, python3:native, @@ -29,7 +29,7 @@ XSBC-Original-Vcs-Browser: https://salsa.debian.org/rust-team/cargo Vcs-Git: https://git.launchpad.net/~canonical-foundations/ubuntu/+source/cargo Vcs-Browser: https://git.launchpad.net/~canonical-foundations/ubuntu/+source/cargo -XS-Vendored-Sources-Rust: adler@1.0.2, aho-corasick@0.7.20, anyhow@1.0.68, arrayvec@0.5.2, atty@0.2.14, autocfg@1.1.0, base64@0.13.1, bitflags@1.3.2, bitmaps@2.1.0, block-buffer@0.10.3, bstr@1.1.0, bytes@1.4.0, bytesize@1.1.0, cc@1.0.79, cfg-if@1.0.0, clap@4.0.15, clap_lex@0.3.1, combine@4.6.6, commoncrypto-sys@0.2.0, commoncrypto@0.2.0, concolor-query@0.0.5, concolor@0.0.8, content_inspector@0.2.4, core-foundation-sys@0.8.3, core-foundation@0.9.3, cpufeatures@0.2.5, crc32fast@1.3.2, crypto-common@0.1.6, crypto-hash@0.3.4, curl-sys@0.4.59+curl-7.86.0, curl@0.4.44, digest@0.10.6, dunce@1.0.3, either@1.8.1, env_logger@0.7.1, env_logger@0.9.3, fastrand@1.8.0, filetime@0.2.19, flate2@1.0.25, fnv@1.0.7, foreign-types-shared@0.1.1, foreign-types@0.3.2, form_urlencoded@1.1.0, fwdansi@1.1.0, generic-array@0.14.6, git2-curl@0.17.0, git2@0.16.1, glob@0.3.1, globset@0.4.10, hashbrown@0.12.3, hex@0.4.3, hmac@0.12.1, home@0.5.4, humantime@1.3.0, humantime@2.1.0, idna@0.3.0, ignore@0.4.20, im-rc@15.1.0, indexmap@1.9.2, itertools@0.10.5, itoa@1.0.5, jobserver@0.1.25, kstring@2.0.0, lazy_static@1.4.0, lazycell@1.3.0, libc@0.2.139, libgit2-sys@0.14.2+1.5.1, libnghttp2-sys@0.1.7+1.45.0, libssh2-sys@0.2.23, libz-sys@1.1.8, log@0.4.17, memchr@2.5.0, miniz_oxide@0.6.2, miow@0.3.7, normalize-line-endings@0.3.0, num-traits@0.2.15, once_cell@1.17.0, opener@0.5.2, openssl-macros@0.1.0, openssl-probe@0.1.5, openssl-sys@0.9.80, openssl@0.10.45, ordered-float@2.10.0, os_info@3.6.0, os_str_bytes@6.4.1, pathdiff@0.2.1, percent-encoding@2.2.0, pkg-config@0.3.26, pretty_env_logger@0.4.0, proc-macro2@1.0.50, quick-error@1.2.3, quote@1.0.23, rand_core@0.6.4, rand_xoshiro@0.6.0, redox_syscall@0.2.16, regex-automata@0.1.10, regex-syntax@0.6.28, regex@1.7.1, remove_dir_all@0.5.3, rustc-workspace-hack@1.0.0, rustfix@0.6.1, ryu@1.0.12, same-file@1.0.6, schannel@0.1.19, semver@1.0.16, serde-value@0.7.0, serde@1.0.152, serde_derive@1.0.152, serde_ignored@0.1.7, serde_json@1.0.91, sha1@0.10.5, shell-escape@0.1.5, similar@2.2.1, sized-chunks@0.6.5, snapbox-macros@0.3.1, snapbox@0.3.3, socket2@0.4.7, static_assertions@1.1.0, strip-ansi-escapes@0.1.1, strsim@0.10.0, subtle@2.4.1, syn@1.0.107, tar@0.4.38, tempfile@3.3.0, termcolor@1.2.0, thread_local@1.1.4, tinyvec@1.6.0, tinyvec_macros@0.1.0, toml_datetime@0.5.1, toml_edit@0.15.0, typenum@1.16.0, unicode-bidi@0.3.10, unicode-ident@1.0.6, unicode-normalization@0.1.22, unicode-width@0.1.10, unicode-xid@0.2.4, url@2.3.1, utf8parse@0.2.0, vcpkg@0.2.15, version_check@0.9.4, vte@0.10.1, vte_generate_state_changes@0.1.1, walkdir@2.3.2, winapi-i686-pc-windows-gnu@0.4.0, winapi-util@0.1.5, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, yansi@0.5.1 +XS-Vendored-Sources-Rust: adler@1.0.2, aho-corasick@0.7.20, anyhow@1.0.69, arrayvec@0.5.2, atty@0.2.14, autocfg@1.1.0, base64@0.13.1, bitflags@1.3.2, bitmaps@2.1.0, block-buffer@0.10.3, bstr@1.2.0, bytes@1.4.0, bytesize@1.1.0, cc@1.0.79, cfg-if@1.0.0, clap@4.0.15, clap_lex@0.3.1, combine@4.6.6, commoncrypto-sys@0.2.0, commoncrypto@0.2.0, concolor-query@0.1.0, concolor@0.0.11, content_inspector@0.2.4, core-foundation-sys@0.8.3, core-foundation@0.9.3, cpufeatures@0.2.5, crc32fast@1.3.2, crypto-common@0.1.6, crypto-hash@0.3.4, curl-sys@0.4.59+curl-7.86.0, curl@0.4.44, digest@0.10.6, dunce@1.0.3, either@1.8.1, env_logger@0.10.0, env_logger@0.7.1, errno@0.2.8, fastrand@1.9.0, filetime@0.2.20, flate2@1.0.25, fnv@1.0.7, foreign-types-shared@0.1.1, foreign-types@0.3.2, form_urlencoded@1.1.0, fwdansi@1.1.0, generic-array@0.14.6, git2-curl@0.17.0, git2@0.16.1, glob@0.3.1, globset@0.4.10, hashbrown@0.12.3, hermit-abi@0.3.1, hex@0.4.3, hmac@0.12.1, home@0.5.4, http-auth@0.1.8, humantime@1.3.0, humantime@2.1.0, idna@0.3.0, ignore@0.4.20, im-rc@15.1.0, indexmap@1.9.2, io-lifetimes@1.0.5, is-terminal@0.4.3, itertools@0.10.5, itoa@1.0.5, jobserver@0.1.25, kstring@2.0.0, lazy_static@1.4.0, lazycell@1.3.0, libc@0.2.139, libgit2-sys@0.14.2+1.5.1, libnghttp2-sys@0.1.7+1.45.0, libssh2-sys@0.2.23, libz-sys@1.1.8, linux-raw-sys@0.1.4, log@0.4.17, memchr@2.5.0, miniz_oxide@0.6.2, miow@0.5.0, normalize-line-endings@0.3.0, num-traits@0.2.15, once_cell@1.17.1, opener@0.5.2, openssl-macros@0.1.0, openssl-probe@0.1.5, openssl-sys@0.9.80, openssl@0.10.45, ordered-float@2.10.0, os_info@3.6.0, os_str_bytes@6.4.1, pathdiff@0.2.1, percent-encoding@2.2.0, pkg-config@0.3.26, pretty_env_logger@0.4.0, proc-macro2@1.0.51, quick-error@1.2.3, quote@1.0.23, rand_core@0.6.4, rand_xoshiro@0.6.0, redox_syscall@0.2.16, regex-automata@0.1.10, regex-syntax@0.6.28, regex@1.7.1, remove_dir_all@0.5.3, rustc-workspace-hack@1.0.0, rustfix@0.6.1, rustix@0.36.8, ryu@1.0.12, same-file@1.0.6, schannel@0.1.19, semver@1.0.16, serde-value@0.7.0, serde@1.0.152, serde_derive@1.0.152, serde_ignored@0.1.7, serde_json@1.0.93, sha1@0.10.5, shell-escape@0.1.5, similar@2.2.1, sized-chunks@0.6.5, snapbox-macros@0.3.1, snapbox@0.4.5, socket2@0.4.7, static_assertions@1.1.0, strip-ansi-escapes@0.1.1, strsim@0.10.0, subtle@2.4.1, syn@1.0.107, tar@0.4.38, tempfile@3.3.0, termcolor@1.2.0, thread_local@1.1.7, tinyvec@1.6.0, tinyvec_macros@0.1.1, toml_datetime@0.5.1, toml_edit@0.15.0, typenum@1.16.0, unicode-bidi@0.3.10, unicode-ident@1.0.6, unicode-normalization@0.1.22, unicode-width@0.1.10, unicode-xid@0.2.4, url@2.3.1, utf8parse@0.2.0, vcpkg@0.2.15, version_check@0.9.4, vte@0.10.1, vte_generate_state_changes@0.1.1, walkdir@2.3.2, winapi-i686-pc-windows-gnu@0.4.0, winapi-util@0.1.5, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, yansi@0.5.1 Package: cargo Architecture: any diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/copyright cargo-0.68.0+ds0ubuntu0.libgit2/debian/copyright --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/copyright 2023-03-08 20:57:50.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/copyright 2023-02-27 01:04:16.000000000 +0000 @@ -595,6 +595,44 @@ License: MIT or Apache-2.0 Comment: see https://github.com/retep998/winapi-rs +Files: vendor/errno/* +Copyright: 2014-2021 Chris Wong +License: MIT or Apache-2.0 +Comment: see https://github.com/lambda-fairy/rust-errno + +Files: vendor/rustix/* +Copyright: 2020-2022 Dan Gohman + 2020-2022 Jakub Konka +License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT +Comment: see https://github.com/bytecodealliance/rustix + +Files: vendor/linux-raw-sys/* +Copyright: 2021-2022 Dan Gohman +License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT +Comment: see https://github.com/sunfishcode/linux-raw-sys + +Files: vendor/io-lifetimes/* +Copyright: 2021-2022 Dan Gohman +License: Apache-2.0 with LLVM exception OR Apache-2.0 OR MIT +Comment: see https://github.com/sunfishcode/io-lifetimes + +Files: vendor/hermit-abi/* +Copyright: 2019-2019 Stefan Lankes +License: MIT or Apache-2.0 +Comment: see https://github.com/hermitcore/hermit-abi + +Files: vendor/is-terminal/* +Copyright: + 2022-2023 Dan Gohman + 2022-2023 softprops +License: MIT +Comment: see https://github.com/sunfishcode/is-terminal + +Files: vendor/http-auth/* +Copyright: 2021-2023 Scott Lamb +License: MIT or Apache-2.0 +Comment: see https://github.com/scottlamb/http-auth + Files: debian/* Copyright: 2016-2019 Ximin Luo @@ -704,7 +742,12 @@ THE SOFTWARE. License: MPL-2.0 - Debian systems provide the MPL 2.0 in /usr/share/common-licenses/MPL-2.0 + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + . + On Debian systems, see /usr/share/common-licenses/MPL-2.0 for the full + text of the MPL version 2.0. License: Unlicense This is free and unencumbered software released into the public domain. @@ -817,3 +860,22 @@ shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. + +License: Apache-2.0 with LLVM exception + On Debian systems, the full text of the Apache License Version 2.0 + can be found in the file `/usr/share/common-licenses/Apache-2.0'. + Additionally, the LLVM exception is as follows: + . + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/debcargo-conf.patch cargo-0.68.0+ds0ubuntu0.libgit2/debian/debcargo-conf.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/debcargo-conf.patch 2023-03-08 20:57:50.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/debcargo-conf.patch 2023-02-27 01:04:16.000000000 +0000 @@ -1,3 +1,40 @@ +From 75d002f9c39fa45ab5de035202f8beac0d23d073 Mon Sep 17 00:00:00 2001 +From: deb-build <> +Date: Mon, 30 Jan 2023 22:24:13 -0700 +Subject: [PATCH] cargo 0.67.1 + +--- + .../patches/disable-derive-deprecated.patch | 11 ++ + src/clap/debian/patches/disable-snapbox.patch | 8 +- + src/clap/debian/patches/disable-trycmd.diff | 2 +- + .../patches/disable-unic-emoji-char.patch | 21 --- + .../patches/once-cell-non-optional.patch | 29 ++++ + .../revert-switch-to-is-terminal.patch | 44 ------ + src/clap/debian/patches/series | 4 +- + .../debian/patches/no-clippy.patch | 23 ++- + .../debian/patches/no-clippy.patch | 23 ++- + src/concolor/debian/patches/series | 2 +- + .../debian/patches/disable-windows.diff | 4 +- + src/rustix/debian/patches/drop-deps.diff | 4 - + src/rustix/debian/patches/no-windows.diff | 11 +- + src/tempfile/debian/patches/series | 2 +- + .../debian/patches/disable-criteron.diff | 27 ++-- + .../debian/patches/drop-criterion.patch | 13 +- + .../debian/patches/drop-snapbox.patch | 6 +- + .../patches/drop-toml-test-harness.patch | 4 +- + src/toml-edit/debian/patches/series | 2 +- + .../debian/patches/series | 1 - + .../patches/switch-back-to-smallvec.patch | 134 ------------------ + src/vte/debian/patches/arrayvec.diff | 26 ---- + src/vte/debian/patches/series | 1 - + 23 files changed, 103 insertions(+), 299 deletions(-) + create mode 100644 src/clap/debian/patches/disable-derive-deprecated.patch + delete mode 100644 src/clap/debian/patches/disable-unic-emoji-char.patch + create mode 100644 src/clap/debian/patches/once-cell-non-optional.patch + delete mode 100644 src/clap/debian/patches/revert-switch-to-is-terminal.patch + delete mode 100644 src/unicode-normalization/debian/patches/switch-back-to-smallvec.patch + delete mode 100644 src/vte/debian/patches/arrayvec.diff + diff --git a/src/clap/debian/patches/disable-derive-deprecated.patch b/src/clap/debian/patches/disable-derive-deprecated.patch new file mode 100644 index 000000000..46d269729 @@ -34,60 +71,45 @@ + version = "1.1.0" + diff --git a/src/clap/debian/patches/disable-trycmd.diff b/src/clap/debian/patches/disable-trycmd.diff -index aeb0bbad4..1a3cf5201 100644 +index 967921765..1a3cf5201 100644 --- a/src/clap/debian/patches/disable-trycmd.diff +++ b/src/clap/debian/patches/disable-trycmd.diff @@ -2,7 +2,7 @@ +++ b/Cargo.toml @@ -413,9 +412,0 @@ -[dev-dependencies.trycmd] ---version = "0.14.3" +--version = "0.14.5" +-version = "0.13" -features = [ - "color-auto", - "diff", diff --git a/src/clap/debian/patches/disable-unic-emoji-char.patch b/src/clap/debian/patches/disable-unic-emoji-char.patch deleted file mode 100644 -index 97aa25af0..000000000 +index bec9e7617..000000000 --- a/src/clap/debian/patches/disable-unic-emoji-char.patch +++ /dev/null -@@ -1,36 +0,0 @@ --Index: clap/Cargo.toml --=================================================================== +@@ -1,21 +0,0 @@ ---- clap.orig/Cargo.toml -+++ clap/Cargo.toml --@@ -408,9 +408,6 @@ version = "1.1.0" -- [dev-dependencies.trybuild] -- version = "1.0.71" +-@@ -410,5 +410,2 @@ - --[dev-dependencies.unic-emoji-char] --version = "0.9.0" -- - [features] -- cargo = ["dep:once_cell"] -- color = [ --Index: clap/src/output/textwrap/core.rs --=================================================================== +-only in patch2: ---- clap.orig/src/output/textwrap/core.rs -+++ clap/src/output/textwrap/core.rs --@@ -90,7 +90,7 @@ mod tests { -- #[cfg(feature = "unicode")] -- use unicode_width::UnicodeWidthChar; +-@@ -92,3 +92,3 @@ - -- #[test] -+ /*#[test] - fn emojis_have_correct_width() { -- use unic_emoji_char::is_emoji; -- --@@ -129,7 +129,7 @@ mod tests { -- -- // The remaining planes contain almost no assigned code points +-@@ -131,3 +131,3 @@ - // and thus also no emojis. -- } -+ }*/ - -- #[test] -- #[cfg(feature = "unicode")] diff --git a/src/clap/debian/patches/once-cell-non-optional.patch b/src/clap/debian/patches/once-cell-non-optional.patch new file mode 100644 index 000000000..d77aad42a @@ -259,6 +281,65 @@ avoid-doctest-breakage.patch -switch-back-to-atty.patch +#switch-back-to-atty.patch +diff --git a/src/filetime/debian/patches/disable-windows.diff b/src/filetime/debian/patches/disable-windows.diff +index 9b2e00d89..4de6958b0 100644 +--- a/src/filetime/debian/patches/disable-windows.diff ++++ b/src/filetime/debian/patches/disable-windows.diff +@@ -5,13 +5,13 @@ + version = "0.2.27" + + -[target."cfg(windows)".dependencies.windows-sys] +--version = "0.42.0" ++-version = "0.45.0" + -features = [ + - "Win32_Foundation", + - "Win32_Storage_FileSystem", + -] + +#[target."cfg(windows)".dependencies.windows-sys] +-+#version = "0.42.0" +++#version = "0.45.0" + +#features = [ + +# "Win32_Foundation", + +# "Win32_Storage_FileSystem", +diff --git a/src/rustix/debian/patches/drop-deps.diff b/src/rustix/debian/patches/drop-deps.diff +index 4f82dbf6c..ef030504b 100644 +--- a/src/rustix/debian/patches/drop-deps.diff ++++ b/src/rustix/debian/patches/drop-deps.diff +@@ -6,11 +6,7 @@ Last-Update: 2022-10-29 + This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ + --- a/Cargo.toml + +++ b/Cargo.toml +-@@ -126 +125,0 @@ +-- "async-std", + @@ -131 +129,0 @@ + - "fs-err", +-@@ -133 +130,0 @@ +--async-std = ["io-lifetimes/async-std"] + @@ -136 +132,0 @@ + -fs-err = ["io-lifetimes/fs-err"] +diff --git a/src/rustix/debian/patches/no-windows.diff b/src/rustix/debian/patches/no-windows.diff +index 999471d51..3fdbb1091 100644 +--- a/src/rustix/debian/patches/no-windows.diff ++++ b/src/rustix/debian/patches/no-windows.diff +@@ -7,12 +7,13 @@ Index: rustix/Cargo.toml + =================================================================== + --- rustix.orig/Cargo.toml + +++ rustix/Cargo.toml +-@@ -215,14 +215,3 @@ optional = true +- [target."cfg(not(target_os = \"emscripten\"))".dev-dependencies.criterion] +- version = "0.3" +- ++@@ -222,15 +222,3 @@ ++ [target."cfg(any(target_os = \"android\", target_os = \"linux\"))".dependencies.once_cell] ++ version = "1.5.2" ++ optional = true ++- + -[target."cfg(windows)".dependencies.windows-sys] +--version = "0.36.0" ++-version = "0.42.0" + -features = [ + - "Win32_Foundation", + - "Win32_Networking_WinSock", diff --git a/src/tempfile/debian/patches/series b/src/tempfile/debian/patches/series index 75abb7f14..2378a84ba 100644 --- a/src/tempfile/debian/patches/series @@ -266,16 +347,56 @@ @@ -1 +1 @@ -relax-dep.diff +#relax-dep.diff -diff --git a/src/toml-edit/debian/patches/series b/src/toml-edit/debian/patches/series -index c822905c1..8fe71944e 100644 ---- a/src/toml_edit/debian/patches/series -+++ b/src/toml_edit/debian/patches/series -@@ -1,4 +1,4 @@ - drop-criterion.patch --drop-pretty-assertions.patch -+#drop-pretty-assertions.patch - drop-snapbox.patch - drop-toml-test-harness.patch +diff --git a/src/thread_local/debian/patches/disable-criteron.diff b/src/thread_local/debian/patches/disable-criteron.diff +index 56a580062..a742e488f 100644 +--- a/src/thread_local/debian/patches/disable-criteron.diff ++++ b/src/thread_local/debian/patches/disable-criteron.diff +@@ -2,36 +2,27 @@ Index: thread-local/Cargo.toml + =================================================================== + --- thread-local.orig/Cargo.toml + +++ thread-local/Cargo.toml +-@@ -22,13 +22,13 @@ keywords = ["thread_local", "concurrent" +- license = "Apache-2.0/MIT" ++@@ -22,15 +22,9 @@ ++ license = "MIT OR Apache-2.0" + repository = "https://github.com/Amanieu/thread_local-rs" + + -[[bench]] + -name = "thread_local" + -harness = false +--required-features = ["criterion"] +--[dependencies.criterion] +--version = "0.3.3" +--optional = true +-+#[[bench]] +-+#name = "thread_local" +-+#harness = false +-+#required-features = ["criterion"] +-+#[dependencies.criterion] +-+#version = "0.3.3" +-+#optional = true ++ ++ [dependencies.cfg-if] ++ version = "1.0.0" + + [dependencies.once_cell] + version = "1.5.2" ++- ++-[dev-dependencies.criterion] ++-version = "0.4.0" + Index: thread-local/benches/thread_local.rs + =================================================================== + --- thread-local.orig/benches/thread_local.rs + +++ thread-local/benches/thread_local.rs +-@@ -1,12 +1,12 @@ +--extern crate criterion; +-+//extern crate criterion; +- extern crate thread_local; +- ++@@ -1,8 +1,8 @@ + -use criterion::{black_box, BatchSize}; + +//use criterion::{black_box, BatchSize}; + diff --git a/src/toml_edit/debian/patches/drop-criterion.patch b/src/toml_edit/debian/patches/drop-criterion.patch index fcb7024e0..9aa594ed9 100644 --- a/src/toml_edit/debian/patches/drop-criterion.patch @@ -320,7 +441,7 @@ - version = "0.5" + version = "0.5.9" -diff --git a/src/toml-edit/debian/patches/drop-toml-test-harness.patch b/src/toml-edit/debian/patches/drop-toml-test-harness.patch +diff --git a/src/toml_edit/debian/patches/drop-toml-test-harness.patch b/src/toml_edit/debian/patches/drop-toml-test-harness.patch index 8599ddfd1..2ec06c19e 100644 --- a/src/toml_edit/debian/patches/drop-toml-test-harness.patch +++ b/src/toml_edit/debian/patches/drop-toml-test-harness.patch @@ -337,6 +458,16 @@ - [features] default = [] +diff --git a/src/toml_edit/debian/patches/series b/src/toml_edit/debian/patches/series +index c822905c1..8fe71944e 100644 +--- a/src/toml_edit/debian/patches/series ++++ b/src/toml_edit/debian/patches/series +@@ -1,4 +1,4 @@ + drop-criterion.patch +-drop-pretty-assertions.patch ++#drop-pretty-assertions.patch + drop-snapbox.patch + drop-toml-test-harness.patch diff --git a/src/unicode-normalization/debian/patches/series b/src/unicode-normalization/debian/patches/series index 2c1db10bd..39fe7a4da 100644 --- a/src/unicode-normalization/debian/patches/series @@ -523,3 +654,106 @@ @@ -1,2 +1 @@ 00-remove-nightly-feature -arrayvec.diff +diff --git a/src/fastrand/debian/patches/no-wasm.patch b/src/fastrand/debian/patches/no-wasm.patch +index 56baab2e5..a75400c72 100644 +--- a/src/fastrand/debian/patches/no-wasm.patch ++++ b/src/fastrand/debian/patches/no-wasm.patch +@@ -7,16 +7,16 @@ Index: fastrand/Cargo.toml + [dev-dependencies.wyhash] + version = "0.5" + - +--[target."cfg(target_arch = \"wasm32\")".dependencies.instant] ++-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dependencies.instant] + -version = "0.1" + - +--[target."cfg(target_arch = \"wasm32\")".dev-dependencies.getrandom] ++-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.getrandom] + -version = "0.2" + -features = ["js"] + - +--[target."cfg(target_arch = \"wasm32\")".dev-dependencies.instant] ++-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.instant] + -version = "0.1" + -features = ["wasm-bindgen"] + - +--[target."cfg(target_arch = \"wasm32\")".dev-dependencies.wasm-bindgen-test] ++-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.wasm-bindgen-test] + -version = "0.3" +diff --git a/src/rustix/debian/patches/no-windows.diff b/src/rustix/debian/patches/no-windows.diff +index 3fdbb1091..e4c4c4f2c 100644 +--- a/src/rustix/debian/patches/no-windows.diff ++++ b/src/rustix/debian/patches/no-windows.diff +@@ -13,7 +13,7 @@ Index: rustix/Cargo.toml + optional = true + - + -[target."cfg(windows)".dependencies.windows-sys] +--version = "0.42.0" ++-version = "0.45.0" + -features = [ + - "Win32_Foundation", + - "Win32_Networking_WinSock", +diff --git a/src/thread_local/debian/patches/disable-criteron.diff b/src/thread_local/debian/patches/disable-criteron.diff +index a742e488f..4fb2973d3 100644 +--- a/src/thread_local/debian/patches/disable-criteron.diff ++++ b/src/thread_local/debian/patches/disable-criteron.diff +@@ -2,22 +2,26 @@ Index: thread-local/Cargo.toml + =================================================================== + --- thread-local.orig/Cargo.toml + +++ thread-local/Cargo.toml +-@@ -22,15 +22,9 @@ ++@@ -25,19 +25,12 @@ keywords = [ + license = "MIT OR Apache-2.0" + repository = "https://github.com/Amanieu/thread_local-rs" + + -[[bench]] + -name = "thread_local" + -harness = false +- ++- + [dependencies.cfg-if] + version = "1.0.0" + + [dependencies.once_cell] + version = "1.5.2" +-- ++ + -[dev-dependencies.criterion] + -version = "0.4.0" ++- ++ [features] ++ nightly = [] ++ + Index: thread-local/benches/thread_local.rs + =================================================================== + --- thread-local.orig/benches/thread_local.rs +diff --git a/src/is-terminal/debian/patches/drop-windows-sys.patch b/src/is-terminal/debian/patches/drop-windows-sys.patch +new file mode 100644 +index 000000000..213b42296 +--- /dev/null ++++ b/src/is-terminal/debian/patches/drop-windows-sys.patch +@@ -0,0 +1,18 @@ ++diff --git a/vendor/is-terminal/Cargo.toml b/vendor/is-terminal/Cargo.toml ++index 1abd630cc..558fa9f15 100644 ++--- a/Cargo.toml +++++ b/Cargo.toml ++@@ -54,13 +54,5 @@ features = ["termios"] ++ [target."cfg(target_os = \"hermit\")".dependencies.hermit-abi] ++ version = "0.3.0" ++ ++-[target."cfg(windows)".dependencies.windows-sys] ++-version = "0.45.0" ++-features = [ ++- "Win32_Foundation", ++- "Win32_Storage_FileSystem", ++- "Win32_System_Console", ++-] ++- ++ [target."cfg(windows)".dev-dependencies.tempfile] ++ version = "3" +diff --git a/src/is-terminal/debian/patches/series b/src/is-terminal/debian/patches/series +new file mode 100644 +index 000000000..ea4f52d48 +--- /dev/null ++++ b/src/is-terminal/debian/patches/series +@@ -0,0 +1 @@ ++drop-windows-sys.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/2900-ubuntu-remove-miow-dependency.patch cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/2900-ubuntu-remove-miow-dependency.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/2900-ubuntu-remove-miow-dependency.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/2900-ubuntu-remove-miow-dependency.patch 2023-02-27 01:04:16.000000000 +0000 @@ -0,0 +1,17 @@ +Description: Remove Windows-only dependency miow to avoid introducing + windows-sys into the vendor tree +Forwarded: not-needed +Author: Zixing Liu +Last-Update: 2023-02-20 + +diff --git a/crates/cargo-util/Cargo.toml b/crates/cargo-util/Cargo.toml +index ff47587b3..0091822a3 100644 +--- a/crates/cargo-util/Cargo.toml ++++ b/crates/cargo-util/Cargo.toml +@@ -24,5 +24,5 @@ walkdir = "2.3.1" + core-foundation = { version = "0.9.0", features = ["mac_os_10_7_support"] } + + [target.'cfg(windows)'.dependencies] +-miow = "0.5.0" ++#miow = "0.5.0" + winapi = { version = "0.3.9", features = ["consoleapi", "minwindef"] } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/2901-ubuntu-is-terminal-remove-windows-sys.patch cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/2901-ubuntu-is-terminal-remove-windows-sys.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/2901-ubuntu-is-terminal-remove-windows-sys.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/2901-ubuntu-is-terminal-remove-windows-sys.patch 2023-02-27 01:04:16.000000000 +0000 @@ -0,0 +1,24 @@ +Description: Remove windows-sys from the dependency to avoid introducing + Windows binary blobs into the vendor tree +Forwarded: not-needed +Author: Zixing Liu +Last-Update: 2023-02-20 + +diff --git a/vendor/is-terminal/Cargo.toml b/vendor/is-terminal/Cargo.toml +index 1abd630cc..558fa9f15 100644 +--- a/vendor/is-terminal/Cargo.toml ++++ b/vendor/is-terminal/Cargo.toml +@@ -54,13 +54,5 @@ features = ["termios"] + [target."cfg(target_os = \"hermit\")".dependencies.hermit-abi] + version = "0.3.0" + +-[target."cfg(windows)".dependencies.windows-sys] +-version = "0.45.0" +-features = [ +- "Win32_Foundation", +- "Win32_Storage_FileSystem", +- "Win32_System_Console", +-] +- + [target."cfg(windows)".dev-dependencies.tempfile] + version = "3" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/ignore-libcurl-errors.patch cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/ignore-libcurl-errors.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/ignore-libcurl-errors.patch 2023-06-07 07:45:26.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/ignore-libcurl-errors.patch 2023-10-19 11:03:01.000000000 +0000 @@ -2,12 +2,12 @@ +++ b/Cargo.toml @@ -25,7 +25,7 @@ cargo-platform = { path = "crates/cargo-platform", version = "0.1.2" } - cargo-util = { path = "crates/cargo-util", version = "0.2.1" } - crates-io = { path = "crates/crates-io", version = "0.34.0" } --curl = { version = "0.4.43", features = ["http2"] } -+curl = { version = "0.4.43" } - curl-sys = "0.4.55" - env_logger = "0.9.0" + cargo-util = { path = "crates/cargo-util", version = "0.2.3" } + crates-io = { path = "crates/crates-io", version = "0.35.0" } +-curl = { version = "0.4.44", features = ["http2"] } ++curl = { version = "0.4.44" } + curl-sys = "0.4.59" + env_logger = "0.10.0" pretty_env_logger = { version = "0.4", optional = true } --- a/src/cargo/core/package.rs +++ b/src/cargo/core/package.rs diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/patches/series 2023-06-07 07:45:26.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/patches/series 2023-10-19 11:02:46.000000000 +0000 @@ -8,5 +8,11 @@ remove-badges.patch proxy-skip-tests.patch i386-crossbuild-tests.patch + +2900-ubuntu-remove-miow-dependency.patch +# this patch is not in debconf patch is because is-terminal +# does not currently have an entry in debconf +2901-ubuntu-is-terminal-remove-windows-sys.patch + git2-no-ssh_key_from_memory.patch ignore-libcurl-errors.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/scripts/debian-cargo-vendor cargo-0.68.0+ds0ubuntu0.libgit2/debian/scripts/debian-cargo-vendor --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/scripts/debian-cargo-vendor 2023-03-08 20:57:50.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/scripts/debian-cargo-vendor 2023-02-27 01:04:16.000000000 +0000 @@ -142,6 +142,11 @@ echo >&2 "$0: removing winapi archives" rm -rf vendor/winapi-*-pc-windows-gnu/lib/*.a +echo >&2 "$0: removing windows-sys stuff" +rm -rf vendor/windows-targets/ \ + vendor/windows_{i686,aarch64,x86_64}_*/ \ + vendor/windows-sys{,-*}/ + echo >&2 "$0: pruning all checksums.." for i in vendor/*; do ${SCRIPTDIR}/prune-checksums "$i"; done diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/debian/vendor-tarball-unsuspicious.txt cargo-0.68.0+ds0ubuntu0.libgit2/debian/vendor-tarball-unsuspicious.txt --- cargo-0.67.1+ds0ubuntu0.libgit2/debian/vendor-tarball-unsuspicious.txt 2023-03-08 20:57:50.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/debian/vendor-tarball-unsuspicious.txt 2023-02-27 01:04:16.000000000 +0000 @@ -8,6 +8,9 @@ */README.md */Cargo.toml base64/RELEASE-NOTES.md +io-lifetimes/CODE_OF_CONDUCT.md +linux-raw-sys/CODE_OF_CONDUCT.md +rustix/CODE_OF_CONDUCT.md # ignore base64/icon_CLion.svg @@ -41,6 +44,7 @@ url/tests/*.json vcpkg/test-data/*/installed/vcpkg/updates/* vte/tests/demo.vte +os_info/src/linux/tests/Debian_11/etc/os-release # ideally should be autogenerated, but too difficult today bstr/src/unicode/fsm/*.dfa @@ -58,6 +62,7 @@ vcpkg/notes.md walkdir/compare/nftw.c winapi/src/lib.rs +rustix/debian/patches/always-enable-cc.diff memchr/scripts/make-byte-frequency-table idna/src/make_uts46_mapping_table.py diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/add.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/add.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/add.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/add.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1,4 +1,5 @@ use cargo::sources::CRATES_IO_REGISTRY; +use cargo::util::print_available_packages; use indexmap::IndexMap; use indexmap::IndexSet; @@ -73,14 +74,7 @@ - Depend on crates with the same name from different registries"), ]) .arg_manifest_path() - .args([ - clap::Arg::new("package") - .short('p') - .long("package") - .action(ArgAction::Set) - .value_name("SPEC") - .help("Package to modify"), - ]) + .arg_package("Package to modify") .arg_quiet() .arg_dry_run("Don't actually write the manifest") .next_help_heading("Source") @@ -161,20 +155,31 @@ let section = parse_section(args); let ws = args.workspace(config)?; + + if args.is_present_with_zero_values("package") { + print_available_packages(&ws)?; + } + let packages = args.packages_from_flags()?; let packages = packages.get_packages(&ws)?; let spec = match packages.len() { 0 => { return Err(CliError::new( - anyhow::format_err!("no packages selected. Please specify one with `-p `"), + anyhow::format_err!( + "no packages selected to modify. Please specify one with `-p `" + ), 101, )); } 1 => packages[0], - len => { + _ => { + let names = packages.iter().map(|p| p.name()).collect::>(); return Err(CliError::new( anyhow::format_err!( - "{len} packages selected. Please specify one with `-p `", + "`cargo add` could not determine which package to modify. \ + Use the `--package` option to specify a package. \n\ + available packages: {}", + names.join(", ") ), 101, )); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/install.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/install.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/install.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/install.rs 2023-01-10 13:38:26.000000000 +0000 @@ -126,10 +126,10 @@ } else if krates.is_empty() { from_cwd = true; SourceId::for_path(config.cwd())? - } else if let Some(registry) = args.registry(config)? { - SourceId::alt_registry(config, ®istry)? } else if let Some(index) = args.get_one::("index") { SourceId::for_registry(&index.into_url()?)? + } else if let Some(registry) = args.registry(config)? { + SourceId::alt_registry(config, ®istry)? } else { SourceId::crates_io(config)? }; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/login.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/login.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/login.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/login.rs 2023-01-10 13:38:26.000000000 +0000 @@ -17,8 +17,8 @@ pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { ops::registry_login( config, - args.get_one::("token").cloned(), - args.get_one::("registry").cloned(), + args.get_one("token").map(String::as_str), + args.get_one("registry").map(String::as_str), )?; Ok(()) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/logout.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/logout.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/logout.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/logout.rs 2023-01-10 13:38:26.000000000 +0000 @@ -15,7 +15,9 @@ .cli_unstable() .fail_if_stable_command(config, "logout", 8933)?; } - config.load_credentials()?; - ops::registry_logout(config, args.get_one::("registry").cloned())?; + ops::registry_logout( + config, + args.get_one::("registry").map(String::as_str), + )?; Ok(()) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/owner.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/owner.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/owner.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/owner.rs 2023-01-10 13:38:26.000000000 +0000 @@ -31,8 +31,6 @@ } pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { - config.load_credentials()?; - let registry = args.registry(config)?; let opts = OwnersOptions { krate: args.get_one::("crate").cloned(), diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/publish.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/publish.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/publish.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/publish.rs 2023-01-10 13:38:26.000000000 +0000 @@ -28,8 +28,6 @@ } pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { - config.load_credentials()?; - let registry = args.registry(config)?; let ws = args.workspace(config)?; let index = args.index()?; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/remove.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/remove.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/remove.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/remove.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1,9 +1,17 @@ use cargo::core::dependency::DepKind; +use cargo::core::PackageIdSpec; +use cargo::core::Workspace; use cargo::ops::cargo_remove::remove; use cargo::ops::cargo_remove::RemoveOptions; use cargo::ops::resolve_ws; use cargo::util::command_prelude::*; +use cargo::util::print_available_packages; +use cargo::util::toml_mut::dependency::Dependency; +use cargo::util::toml_mut::dependency::MaybeWorkspace; +use cargo::util::toml_mut::dependency::Source; use cargo::util::toml_mut::manifest::DepTable; +use cargo::util::toml_mut::manifest::LocalManifest; +use cargo::CargoResult; pub fn cli() -> clap::Command { clap::Command::new("remove") @@ -47,20 +55,31 @@ let dry_run = args.dry_run(); let workspace = args.workspace(config)?; + + if args.is_present_with_zero_values("package") { + print_available_packages(&workspace)?; + } + let packages = args.packages_from_flags()?; let packages = packages.get_packages(&workspace)?; let spec = match packages.len() { 0 => { return Err(CliError::new( - anyhow::format_err!("no packages selected. Please specify one with `-p `"), + anyhow::format_err!( + "no packages selected to modify. Please specify one with `-p `" + ), 101, )); } 1 => packages[0], - len => { + _ => { + let names = packages.iter().map(|p| p.name()).collect::>(); return Err(CliError::new( anyhow::format_err!( - "{len} packages selected. Please specify one with `-p `", + "`cargo remove` could not determine which package to modify. \ + Use the `--package` option to specify a package. \n\ + available packages: {}", + names.join(", ") ), 101, )); @@ -71,7 +90,7 @@ .get_many::("dependencies") .expect("required(true)") .cloned() - .collect(); + .collect::>(); let section = parse_section(args); @@ -85,6 +104,9 @@ remove(&options)?; if !dry_run { + // Clean up the workspace + gc_workspace(&workspace)?; + // Reload the workspace since we've changed dependencies let ws = args.workspace(config)?; resolve_ws(&ws)?; @@ -114,3 +136,209 @@ table } + +/// Clean up the workspace.dependencies, profile, patch, and replace sections of the root manifest +/// by removing dependencies which no longer have a reference to them. +fn gc_workspace(workspace: &Workspace<'_>) -> CargoResult<()> { + let mut manifest: toml_edit::Document = + cargo_util::paths::read(workspace.root_manifest())?.parse()?; + let mut is_modified = true; + + let members = workspace + .members() + .map(|p| LocalManifest::try_new(p.manifest_path())) + .collect::>>()?; + + let mut dependencies = members + .iter() + .flat_map(|manifest| { + manifest.get_sections().into_iter().flat_map(|(_, table)| { + table + .as_table_like() + .unwrap() + .iter() + .map(|(key, item)| Dependency::from_toml(&manifest.path, key, item)) + .collect::>() + }) + }) + .collect::>>()?; + + // Clean up the workspace.dependencies section and replace instances of + // workspace dependencies with their definitions + if let Some(toml_edit::Item::Table(deps_table)) = manifest + .get_mut("workspace") + .and_then(|t| t.get_mut("dependencies")) + { + deps_table.set_implicit(true); + for (key, item) in deps_table.iter_mut() { + let ws_dep = Dependency::from_toml(&workspace.root(), key.get(), item)?; + + // search for uses of this workspace dependency + let mut is_used = false; + for dep in dependencies.iter_mut().filter(|d| { + d.toml_key() == key.get() && matches!(d.source(), Some(Source::Workspace(_))) + }) { + // HACK: Replace workspace references in `dependencies` to simplify later GC steps: + // 1. Avoid having to look it up again to determine the dependency source / spec + // 2. The entry might get deleted, preventing us from looking it up again + // + // This does lose extra information, like features enabled, but that shouldn't be a + // problem for GC + *dep = ws_dep.clone(); + + is_used = true; + } + + if !is_used { + *item = toml_edit::Item::None; + is_modified = true; + } + } + } + + // Clean up the profile section + // + // Example tables: + // - profile.dev.package.foo + // - profile.release.package."*" + // - profile.release.package."foo:2.1.0" + if let Some(toml_edit::Item::Table(profile_section_table)) = manifest.get_mut("profile") { + profile_section_table.set_implicit(true); + + for (_, item) in profile_section_table.iter_mut() { + if let toml_edit::Item::Table(profile_table) = item { + profile_table.set_implicit(true); + + if let Some(toml_edit::Item::Table(package_table)) = + profile_table.get_mut("package") + { + package_table.set_implicit(true); + + for (key, item) in package_table.iter_mut() { + if !spec_has_match( + &PackageIdSpec::parse(key.get())?, + &dependencies, + workspace.config(), + )? { + *item = toml_edit::Item::None; + is_modified = true; + } + } + } + } + } + } + + // Clean up the patch section + if let Some(toml_edit::Item::Table(patch_section_table)) = manifest.get_mut("patch") { + patch_section_table.set_implicit(true); + + // The key in each of the subtables is a source (either a registry or a URL) + for (source, item) in patch_section_table.iter_mut() { + if let toml_edit::Item::Table(patch_table) = item { + patch_table.set_implicit(true); + + for (key, item) in patch_table.iter_mut() { + let package_name = + Dependency::from_toml(&workspace.root_manifest(), key.get(), item)?.name; + if !source_has_match( + &package_name, + source.get(), + &dependencies, + workspace.config(), + )? { + *item = toml_edit::Item::None; + } + } + } + } + } + + // Clean up the replace section + if let Some(toml_edit::Item::Table(table)) = manifest.get_mut("replace") { + table.set_implicit(true); + + for (key, item) in table.iter_mut() { + if !spec_has_match( + &PackageIdSpec::parse(key.get())?, + &dependencies, + workspace.config(), + )? { + *item = toml_edit::Item::None; + is_modified = true; + } + } + } + + if is_modified { + cargo_util::paths::write(workspace.root_manifest(), manifest.to_string().as_bytes())?; + } + + Ok(()) +} + +/// Check whether or not a package ID spec matches any non-workspace dependencies. +fn spec_has_match( + spec: &PackageIdSpec, + dependencies: &[Dependency], + config: &Config, +) -> CargoResult { + for dep in dependencies { + if spec.name().as_str() != &dep.name { + continue; + } + + let version_matches = match (spec.version(), dep.version()) { + (Some(v), Some(vq)) => semver::VersionReq::parse(vq)?.matches(v), + (Some(_), None) => false, + (None, None | Some(_)) => true, + }; + if !version_matches { + continue; + } + + match dep.source_id(config)? { + MaybeWorkspace::Other(source_id) => { + if spec.url().map(|u| u == source_id.url()).unwrap_or(true) { + return Ok(true); + } + } + MaybeWorkspace::Workspace(_) => {} + } + } + + Ok(false) +} + +/// Check whether or not a source (URL or registry name) matches any non-workspace dependencies. +fn source_has_match( + name: &str, + source: &str, + dependencies: &[Dependency], + config: &Config, +) -> CargoResult { + for dep in dependencies { + if &dep.name != name { + continue; + } + + match dep.source_id(config)? { + MaybeWorkspace::Other(source_id) => { + if source_id.is_registry() { + if source_id.display_registry_name() == source + || source_id.url().as_str() == source + { + return Ok(true); + } + } else if source_id.is_git() { + if source_id.url().as_str() == source { + return Ok(true); + } + } + } + MaybeWorkspace::Workspace(_) => {} + } + } + + Ok(false) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/update.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/update.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/update.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/update.rs 2023-01-10 13:38:26.000000000 +0000 @@ -19,7 +19,8 @@ "precise", "Update a single dependency to exactly PRECISE when used with -p", ) - .value_name("PRECISE"), + .value_name("PRECISE") + .requires("package"), ) .arg_manifest_path() .after_help("Run `cargo help update` for more detailed information.\n") diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/yank.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/yank.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/bin/cargo/commands/yank.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/bin/cargo/commands/yank.rs 2023-01-10 13:38:26.000000000 +0000 @@ -23,8 +23,6 @@ } pub fn exec(config: &mut Config, args: &ArgMatches) -> CliResult { - config.load_credentials()?; - let registry = args.registry(config)?; let (krate, version) = resolve_crate( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/build_context/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/build_context/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/build_context/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/build_context/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -17,7 +17,7 @@ FileFlavor, FileType, RustDocFingerprint, RustcTargetData, TargetInfo, }; -/// The build context, containing complete infomration needed for a build task +/// The build context, containing complete information needed for a build task /// before it gets started. /// /// It is intended that this is mostly static information. Stuff that mutates @@ -145,7 +145,7 @@ /// Extra compiler flags to pass to `rustc` for a given unit. /// /// Although it depends on the caller, in the current Cargo implementation, - /// these flags take precendence over those from [`BuildContext::extra_args_for`]. + /// these flags take precedence over those from [`BuildContext::extra_args_for`]. /// /// As of now, these flags come from environment variables and configurations. /// See [`TargetInfo.rustflags`] for more on how Cargo collects them. @@ -158,7 +158,7 @@ /// Extra compiler flags to pass to `rustdoc` for a given unit. /// /// Although it depends on the caller, in the current Cargo implementation, - /// these flags take precendence over those from [`BuildContext::extra_args_for`]. + /// these flags take precedence over those from [`BuildContext::extra_args_for`]. /// /// As of now, these flags come from environment variables and configurations. /// See [`TargetInfo.rustdocflags`] for more on how Cargo collects them. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/compilation_files.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/compilation_files.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/compilation_files.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/compilation_files.rs 2023-01-10 13:38:26.000000000 +0000 @@ -451,9 +451,11 @@ vec![] } CompileMode::Docscrape => { - let path = self - .deps_dir(unit) - .join(format!("{}.examples", unit.buildkey())); + // The file name needs to be stable across Cargo sessions. + // This originally used unit.buildkey(), but that isn't stable, + // so we use metadata instead (prefixed with name for debugging). + let file_name = format!("{}-{}.examples", unit.pkg.name(), self.metadata(unit)); + let path = self.deps_dir(unit).join(file_name); vec![OutputFile { path, hardlink: None, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/context/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -77,6 +77,11 @@ /// Map of Doc/Docscrape units to metadata for their -Cmetadata flag. /// See Context::find_metadata_units for more details. pub metadata_for_doc_units: HashMap, + + /// Set of metadata of Docscrape units that fail before completion, e.g. + /// because the target has a type error. This is in an Arc> + /// because it is continuously updated as the job progresses. + pub failed_scrape_units: Arc>>, } impl<'a, 'cfg> Context<'a, 'cfg> { @@ -115,6 +120,7 @@ rustc_clients: HashMap::new(), lto: HashMap::new(), metadata_for_doc_units: HashMap::new(), + failed_scrape_units: Arc::new(Mutex::new(HashSet::new())), }) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/fingerprint.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/fingerprint.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/fingerprint.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/fingerprint.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1254,24 +1254,28 @@ /// Calculate a fingerprint for a "normal" unit, or anything that's not a build /// script. This is an internal helper of `calculate`, don't call directly. fn calculate_normal(cx: &mut Context<'_, '_>, unit: &Unit) -> CargoResult { - // Recursively calculate the fingerprint for all of our dependencies. - // - // Skip fingerprints of binaries because they don't actually induce a - // recompile, they're just dependencies in the sense that they need to be - // built. - // - // Create Vec since mutable cx is needed in closure. - let deps = Vec::from(cx.unit_deps(unit)); - let mut deps = deps - .into_iter() - .filter(|dep| !dep.unit.target.is_bin()) - .map(|dep| DepFingerprint::new(cx, unit, &dep)) - .collect::>>()?; - deps.sort_by(|a, b| a.pkg_id.cmp(&b.pkg_id)); + let deps = { + // Recursively calculate the fingerprint for all of our dependencies. + // + // Skip fingerprints of binaries because they don't actually induce a + // recompile, they're just dependencies in the sense that they need to be + // built. The only exception here are artifact dependencies, + // which is an actual dependency that needs a recompile. + // + // Create Vec since mutable cx is needed in closure. + let deps = Vec::from(cx.unit_deps(unit)); + let mut deps = deps + .into_iter() + .filter(|dep| !dep.unit.target.is_bin() || dep.unit.artifact.is_true()) + .map(|dep| DepFingerprint::new(cx, unit, &dep)) + .collect::>>()?; + deps.sort_by(|a, b| a.pkg_id.cmp(&b.pkg_id)); + deps + }; // Afterwards calculate our own fingerprint information. let target_root = target_root(cx); - let local = if unit.mode.is_doc() { + let local = if unit.mode.is_doc() || unit.mode.is_doc_scrape() { // rustdoc does not have dep-info files. let fingerprint = pkg_fingerprint(cx.bcx, &unit.pkg).with_context(|| { format!( @@ -1298,7 +1302,7 @@ // Fill out a bunch more information that we'll be tracking typically // hashed to take up less space on disk as we just need to know when things // change. - let extra_flags = if unit.mode.is_doc() { + let extra_flags = if unit.mode.is_doc() || unit.mode.is_doc_scrape() { cx.bcx.rustdocflags_args(unit) } else { cx.bcx.rustflags_args(unit) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/job_queue.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/job_queue.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/job_queue.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/job_queue.rs 2023-01-10 13:38:26.000000000 +0000 @@ -129,15 +129,12 @@ messages: Arc>, /// Diagnostic deduplication support. diag_dedupe: DiagDedupe<'cfg>, - /// Count of warnings, used to print a summary after the job succeeds. - /// - /// First value is the total number of warnings, and the second value is - /// the number that were suppressed because they were duplicates of a - /// previous warning. - warning_count: HashMap, + /// Count of warnings, used to print a summary after the job succeeds + warning_count: HashMap, active: HashMap, compiled: HashSet, documented: HashSet, + scraped: HashSet, counts: HashMap, progress: Progress<'cfg>, next_id: u32, @@ -170,6 +167,50 @@ per_package_future_incompat_reports: Vec, } +/// Count of warnings, used to print a summary after the job succeeds +#[derive(Default)] +pub struct WarningCount { + /// total number of warnings + pub total: usize, + /// number of warnings that were suppressed because they + /// were duplicates of a previous warning + pub duplicates: usize, + /// number of fixable warnings set to `NotAllowed` + /// if any errors have been seen ofr the current + /// target + pub fixable: FixableWarnings, +} + +impl WarningCount { + /// If an error is seen this should be called + /// to set `fixable` to `NotAllowed` + fn disallow_fixable(&mut self) { + self.fixable = FixableWarnings::NotAllowed; + } + + /// Checks fixable if warnings are allowed + /// fixable warnings are allowed if no + /// errors have been seen for the current + /// target. If an error was seen `fixable` + /// will be `NotAllowed`. + fn fixable_allowed(&self) -> bool { + match &self.fixable { + FixableWarnings::NotAllowed => false, + _ => true, + } + } +} + +/// Used to keep track of how many fixable warnings there are +/// and if fixable warnings are allowed +#[derive(Default)] +pub enum FixableWarnings { + NotAllowed, + #[default] + Zero, + Positive(usize), +} + pub struct ErrorsDuringDrain { pub count: usize, } @@ -307,15 +348,29 @@ BuildPlanMsg(String, ProcessBuilder, Arc>), Stdout(String), Stderr(String), + + // This is for general stderr output from subprocesses Diagnostic { id: JobId, level: String, diag: String, + fixable: bool, }, + // This handles duplicate output that is suppressed, for showing + // only a count of duplicate messages instead WarningCount { id: JobId, emitted: bool, + fixable: bool, + }, + // This is for warnings generated by Cargo's interpretation of the + // subprocess output, e.g. scrape-examples prints a warning if a + // unit fails to be scraped + Warning { + id: JobId, + warning: String, }, + FixDiagnostic(diagnostic_server::Message), Token(io::Result), Finish(JobId, Artifact, CargoResult<()>), @@ -363,13 +418,15 @@ Ok(()) } - pub fn emit_diag(&self, level: String, diag: String) -> CargoResult<()> { + /// See [`Message::Diagnostic`] and [`Message::WarningCount`]. + pub fn emit_diag(&self, level: String, diag: String, fixable: bool) -> CargoResult<()> { if let Some(dedupe) = self.output { let emitted = dedupe.emit_diag(&diag)?; if level == "warning" { self.messages.push(Message::WarningCount { id: self.id, emitted, + fixable, }); } } else { @@ -377,11 +434,21 @@ id: self.id, level, diag, + fixable, }); } Ok(()) } + /// See [`Message::Warning`]. + pub fn warning(&self, warning: String) -> CargoResult<()> { + self.messages.push_bounded(Message::Warning { + id: self.id, + warning, + }); + Ok(()) + } + /// A method used to signal to the coordinator thread that the rmeta file /// for an rlib has been produced. This is only called for some rmeta /// builds when required, and can be called at any time before a job ends. @@ -431,8 +498,10 @@ .filter(|dep| { // Binaries aren't actually needed to *compile* tests, just to run // them, so we don't include this dependency edge in the job graph. + // But we shouldn't filter out dependencies being scraped for Rustdoc. (!dep.unit.target.is_test() && !dep.unit.target.is_bin()) || dep.unit.artifact.is_true() + || dep.unit.mode.is_doc_scrape() }) .map(|dep| { // Handle the case here where our `unit -> dep` dependency may @@ -519,6 +588,7 @@ active: HashMap::new(), compiled: HashSet::new(), documented: HashSet::new(), + scraped: HashSet::new(), counts: self.counts, progress, next_id: 0, @@ -679,14 +749,32 @@ shell.print_ansi_stderr(err.as_bytes())?; shell.err().write_all(b"\n")?; } - Message::Diagnostic { id, level, diag } => { + Message::Diagnostic { + id, + level, + diag, + fixable, + } => { let emitted = self.diag_dedupe.emit_diag(&diag)?; if level == "warning" { - self.bump_warning_count(id, emitted); + self.bump_warning_count(id, emitted, fixable); } + if level == "error" { + let cnts = self.warning_count.entry(id).or_default(); + // If there is an error, the `cargo fix` message should not show + cnts.disallow_fixable(); + } + } + Message::Warning { id, warning } => { + cx.bcx.config.shell().warn(warning)?; + self.bump_warning_count(id, true, false); } - Message::WarningCount { id, emitted } => { - self.bump_warning_count(id, emitted); + Message::WarningCount { + id, + emitted, + fixable, + } => { + self.bump_warning_count(id, emitted, fixable); } Message::FixDiagnostic(msg) => { self.print.print(&msg)?; @@ -724,6 +812,16 @@ debug!("end ({:?}): {:?}", unit, result); match result { Ok(()) => self.finish(id, &unit, artifact, cx)?, + Err(_) + if unit.mode.is_doc_scrape() + && unit.target.doc_scrape_examples().is_unset() => + { + cx.failed_scrape_units + .lock() + .unwrap() + .insert(cx.files().metadata(&unit)); + self.queue.finish(&unit, &artifact); + } Err(error) => { let msg = "The following warnings were emitted during compilation:"; self.emit_warnings(Some(msg), &unit, cx)?; @@ -1127,19 +1225,34 @@ Ok(()) } - fn bump_warning_count(&mut self, id: JobId, emitted: bool) { + fn bump_warning_count(&mut self, id: JobId, emitted: bool, fixable: bool) { let cnts = self.warning_count.entry(id).or_default(); - cnts.0 += 1; + cnts.total += 1; if !emitted { - cnts.1 += 1; + cnts.duplicates += 1; + // Don't add to fixable if it's already been emitted + } else if fixable { + // Do not add anything to the fixable warning count if + // is `NotAllowed` since that indicates there was an + // error while building this `Unit` + if cnts.fixable_allowed() { + cnts.fixable = match cnts.fixable { + FixableWarnings::NotAllowed => FixableWarnings::NotAllowed, + FixableWarnings::Zero => FixableWarnings::Positive(1), + FixableWarnings::Positive(fixable) => FixableWarnings::Positive(fixable + 1), + }; + } } } /// Displays a final report of the warnings emitted by a particular job. fn report_warning_count(&mut self, config: &Config, id: JobId) { let count = match self.warning_count.remove(&id) { - Some(count) => count, - None => return, + // An error could add an entry for a `Unit` + // with 0 warnings but having fixable + // warnings be disallowed + Some(count) if count.total > 0 => count, + None | Some(_) => return, }; let unit = &self.active[&id]; let mut message = format!("`{}` ({}", unit.pkg.name(), unit.target.description_named()); @@ -1151,15 +1264,47 @@ message.push_str(" doc"); } message.push_str(") generated "); - match count.0 { + match count.total { 1 => message.push_str("1 warning"), n => drop(write!(message, "{} warnings", n)), }; - match count.1 { + match count.duplicates { 0 => {} 1 => message.push_str(" (1 duplicate)"), n => drop(write!(message, " ({} duplicates)", n)), } + // Only show the `cargo fix` message if its a local `Unit` + if unit.is_local() && config.nightly_features_allowed { + // Do not show this if there are any errors or no fixable warnings + if let FixableWarnings::Positive(fixable) = count.fixable { + // `cargo fix` doesnt have an option for custom builds + if !unit.target.is_custom_build() { + let mut command = { + let named = unit.target.description_named(); + // if its a lib we need to add the package to fix + if unit.target.is_lib() { + format!("{} -p {}", named, unit.pkg.name()) + } else { + named + } + }; + if unit.mode.is_rustc_test() + && !(unit.target.is_test() || unit.target.is_bench()) + { + command.push_str(" --tests"); + } + let mut suggestions = format!("{} suggestion", fixable); + if fixable > 1 { + suggestions.push_str("s") + } + drop(write!( + message, + " (run `cargo fix --{}` to apply {})", + command, suggestions + )) + } + } + } // Errors are ignored here because it is tricky to handle them // correctly, and they aren't important. drop(config.shell().warn(message)); @@ -1198,8 +1343,11 @@ unit: &Unit, fresh: Freshness, ) -> CargoResult<()> { - if (self.compiled.contains(&unit.pkg.package_id()) && !unit.mode.is_doc()) + if (self.compiled.contains(&unit.pkg.package_id()) + && !unit.mode.is_doc() + && !unit.mode.is_doc_scrape()) || (self.documented.contains(&unit.pkg.package_id()) && unit.mode.is_doc()) + || (self.scraped.contains(&unit.pkg.package_id()) && unit.mode.is_doc_scrape()) { return Ok(()); } @@ -1213,6 +1361,9 @@ config.shell().status("Documenting", &unit.pkg)?; } else if unit.mode.is_doc_test() { // Skip doc test. + } else if unit.mode.is_doc_scrape() { + self.scraped.insert(unit.pkg.package_id()); + config.shell().status("Scraping", &unit.pkg)?; } else { self.compiled.insert(unit.pkg.package_id()); if unit.mode.is_check() { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -22,7 +22,7 @@ pub mod unit_dependencies; pub mod unit_graph; -use std::collections::HashSet; +use std::collections::{HashMap, HashSet}; use std::env; use std::ffi::{OsStr, OsString}; use std::fs::{self, File}; @@ -55,12 +55,13 @@ pub use crate::core::compiler::unit::{Unit, UnitInterner}; use crate::core::manifest::TargetSourcePath; use crate::core::profiles::{PanicStrategy, Profile, Strip}; -use crate::core::{Feature, PackageId, Target}; +use crate::core::{Feature, PackageId, Target, Verbosity}; use crate::util::errors::{CargoResult, VerboseError}; use crate::util::interning::InternedString; use crate::util::machine_message::{self, Message}; use crate::util::{add_path_args, internal, iter_join_onto, profile}; use cargo_util::{paths, ProcessBuilder, ProcessError}; +use rustfix::diagnostics::Applicability; const RUSTDOC_CRATE_VERSION_FLAG: &str = "--crate-version"; @@ -653,13 +654,16 @@ rustdoc.arg("-C").arg(format!("metadata={}", metadata)); let scrape_output_path = |unit: &Unit| -> CargoResult { - let output_dir = cx.files().deps_dir(unit); - Ok(output_dir.join(format!("{}.examples", unit.buildkey()))) + cx.outputs(unit).map(|outputs| outputs[0].path.clone()) }; if unit.mode.is_doc_scrape() { debug_assert!(cx.bcx.scrape_units.contains(unit)); + if unit.target.is_test() { + rustdoc.arg("--scrape-tests"); + } + rustdoc.arg("-Zunstable-options"); rustdoc @@ -677,18 +681,23 @@ rustdoc.arg("--scrape-examples-target-crate").arg(name); } } - } else if cx.bcx.scrape_units.len() > 0 && cx.bcx.ws.unit_needs_doc_scrape(unit) { - // We only pass scraped examples to packages in the workspace - // since examples are only coming from reverse-dependencies of workspace packages + } + let should_include_scrape_units = unit.mode.is_doc() + && cx.bcx.scrape_units.len() > 0 + && cx.bcx.ws.unit_needs_doc_scrape(unit); + let scrape_outputs = if should_include_scrape_units { rustdoc.arg("-Zunstable-options"); - - for scrape_unit in &cx.bcx.scrape_units { - rustdoc - .arg("--with-examples") - .arg(scrape_output_path(scrape_unit)?); - } - } + Some( + cx.bcx + .scrape_units + .iter() + .map(|unit| Ok((cx.files().metadata(unit), scrape_output_path(unit)?))) + .collect::>>()?, + ) + } else { + None + }; build_deps_args(&mut rustdoc, cx, unit)?; rustdoc::add_root_urls(cx, unit, &mut rustdoc)?; @@ -699,19 +708,45 @@ append_crate_version_flag(unit, &mut rustdoc); } + let target_desc = unit.target.description_named(); let name = unit.pkg.name().to_string(); let build_script_outputs = Arc::clone(&cx.build_script_outputs); let package_id = unit.pkg.package_id(); let manifest_path = PathBuf::from(unit.pkg.manifest_path()); + let relative_manifest_path = manifest_path + .strip_prefix(cx.bcx.ws.root()) + .unwrap_or(&manifest_path) + .to_owned(); let target = Target::clone(&unit.target); let mut output_options = OutputOptions::new(cx, unit); let script_metadata = cx.find_build_script_metadata(unit); + let failed_scrape_units = Arc::clone(&cx.failed_scrape_units); + let hide_diagnostics_for_scrape_unit = unit.mode.is_doc_scrape() + && unit.target.doc_scrape_examples().is_unset() + && !matches!(cx.bcx.config.shell().verbosity(), Verbosity::Verbose); + if hide_diagnostics_for_scrape_unit { + output_options.show_diagnostics = false; + } Ok(Work::new(move |state| { add_custom_flags( &mut rustdoc, &build_script_outputs.lock().unwrap(), script_metadata, )?; + + // Add the output of scraped examples to the rustdoc command. + // This action must happen after the unit's dependencies have finished, + // because some of those deps may be Docscrape units which have failed. + // So we dynamically determine which `--with-examples` flags to pass here. + if let Some(scrape_outputs) = scrape_outputs { + let failed_scrape_units = failed_scrape_units.lock().unwrap(); + for (metadata, output_path) in &scrape_outputs { + if !failed_scrape_units.contains(metadata) { + rustdoc.arg("--with-examples").arg(output_path); + } + } + } + let crate_dir = doc_dir.join(&crate_name); if crate_dir.exists() { // Remove output from a previous build. This ensures that stale @@ -721,7 +756,7 @@ } state.running(&rustdoc); - rustdoc + let result = rustdoc .exec_with_streaming( &mut |line| on_stdout_line(state, line, package_id, &target), &mut |line| { @@ -736,7 +771,23 @@ }, false, ) - .with_context(|| format!("could not document `{}`", name))?; + .with_context(|| format!("could not document `{}`", name)); + + if let Err(e) = result { + if hide_diagnostics_for_scrape_unit { + let diag = format!( + "\ +failed to scan {target_desc} in package `{name}` for example code usage + Try running with `--verbose` to see the error message. + If this example should not be scanned, consider adding `doc-scrape-examples = false` to the `[[example]]` definition in {}", + relative_manifest_path.display() + ); + state.warning(diag)?; + } + + return Err(e); + } + Ok(()) })) } @@ -1420,7 +1471,28 @@ rendered: String, message: String, level: String, + children: Vec, } + + // A partial rustfix::diagnostics::Diagnostic. We deserialize only a + // subset of the fields because rustc's output can be extremely + // deeply nested JSON in pathological cases involving macro + // expansion. Rustfix's Diagnostic struct is recursive containing a + // field `children: Vec`, and it can cause deserialization to + // hit serde_json's default recursion limit, or overflow the stack + // if we turn that off. Cargo only cares about the 1 field listed + // here. + #[derive(serde::Deserialize)] + struct PartialDiagnostic { + spans: Vec, + } + + // A partial rustfix::diagnostics::DiagnosticSpan. + #[derive(serde::Deserialize)] + struct PartialDiagnosticSpan { + suggestion_applicability: Option, + } + if let Ok(mut msg) = serde_json::from_str::(compiler_message.get()) { if msg.message.starts_with("aborting due to") || msg.message.ends_with("warning emitted") @@ -1443,8 +1515,19 @@ .expect("strip should never fail") }; if options.show_diagnostics { + let machine_applicable: bool = msg + .children + .iter() + .map(|child| { + child + .spans + .iter() + .filter_map(|span| span.suggestion_applicability) + .any(|app| app == Applicability::MachineApplicable) + }) + .any(|b| b); count_diagnostic(&msg.level, options); - state.emit_diag(msg.level, rendered)?; + state.emit_diag(msg.level, rendered, machine_applicable)?; } return Ok(true); } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/rustdoc.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/rustdoc.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/rustdoc.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/rustdoc.rs 2023-01-10 13:38:26.000000000 +0000 @@ -190,3 +190,22 @@ } Ok(()) } + +/// Indicates whether a target should have examples scraped from it +/// by rustdoc. Configured within Cargo.toml. +#[derive(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Debug, Copy)] +pub enum RustdocScrapeExamples { + Enabled, + Disabled, + Unset, +} + +impl RustdocScrapeExamples { + pub fn is_enabled(&self) -> bool { + matches!(self, RustdocScrapeExamples::Enabled) + } + + pub fn is_unset(&self) -> bool { + matches!(self, RustdocScrapeExamples::Unset) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/unit_dependencies.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/unit_dependencies.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/compiler/unit_dependencies.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/compiler/unit_dependencies.rs 2023-01-10 13:38:26.000000000 +0000 @@ -718,13 +718,14 @@ // Add all units being scraped for examples as a dependency of top-level Doc units. if state.ws.unit_needs_doc_scrape(unit) { for scrape_unit in state.scrape_units.iter() { - deps_of(scrape_unit, state, unit_for)?; + let scrape_unit_for = UnitFor::new_normal(scrape_unit.kind); + deps_of(scrape_unit, state, scrape_unit_for)?; ret.push(new_unit_dep( state, scrape_unit, &scrape_unit.pkg, &scrape_unit.target, - unit_for, + scrape_unit_for, scrape_unit.kind, scrape_unit.mode, IS_NO_ARTIFACT_DEP, @@ -1088,7 +1089,6 @@ if !dep.is_transitive() && !unit.target.is_test() && !unit.target.is_example() - && !unit.mode.is_doc_scrape() && !unit.mode.is_any_test() { return false; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/features.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/features.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/features.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/features.rs 2023-01-10 13:38:26.000000000 +0000 @@ -682,16 +682,15 @@ panic_abort_tests: bool = ("Enable support to run tests with -Cpanic=abort"), host_config: bool = ("Enable the [host] section in the .cargo/config.toml file"), sparse_registry: bool = ("Support plain-HTTP-based crate registries"), + registry_auth: bool = ("Authentication for alternative registries"), target_applies_to_host: bool = ("Enable the `target-applies-to-host` key in the .cargo/config.toml file"), rustdoc_map: bool = ("Allow passing external documentation mappings to rustdoc"), separate_nightlies: bool = (HIDDEN), terminal_width: Option> = ("Provide a terminal width to rustc for error truncation"), publish_timeout: bool = ("Enable the `publish.timeout` key in .cargo/config.toml file"), unstable_options: bool = ("Allow the usage of unstable options"), - // TODO(wcrichto): move scrape example configuration into Cargo.toml before stabilization - // See: https://github.com/rust-lang/cargo/pull/9525#discussion_r728470927 - rustdoc_scrape_examples: Option = ("Allow rustdoc to scrape examples from reverse-dependencies for documentation"), skip_rustdoc_fingerprint: bool = (HIDDEN), + rustdoc_scrape_examples: bool = ("Allows Rustdoc to scrape code examples from reverse-dependencies"), ); const STABILIZED_COMPILE_PROGRESS: &str = "The progress bar is now always \ @@ -958,18 +957,11 @@ "rustdoc-map" => self.rustdoc_map = parse_empty(k, v)?, "terminal-width" => self.terminal_width = Some(parse_usize_opt(v)?), "sparse-registry" => self.sparse_registry = parse_empty(k, v)?, + "registry-auth" => self.registry_auth = parse_empty(k, v)?, "namespaced-features" => stabilized_warn(k, "1.60", STABILISED_NAMESPACED_FEATURES), "weak-dep-features" => stabilized_warn(k, "1.60", STABILIZED_WEAK_DEP_FEATURES), "credential-process" => self.credential_process = parse_empty(k, v)?, - "rustdoc-scrape-examples" => { - if let Some(s) = v { - self.rustdoc_scrape_examples = Some(s.to_string()) - } else { - bail!( - r#"-Z rustdoc-scrape-examples must take "all" or "examples" as an argument"# - ) - } - } + "rustdoc-scrape-examples" => self.rustdoc_scrape_examples = parse_empty(k, v)?, "skip-rustdoc-fingerprint" => self.skip_rustdoc_fingerprint = parse_empty(k, v)?, "compile-progress" => stabilized_warn(k, "1.30", STABILIZED_COMPILE_PROGRESS), "offline" => stabilized_err(k, "1.36", STABILIZED_OFFLINE)?, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/manifest.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/manifest.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/manifest.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/manifest.rs 2023-01-10 13:38:26.000000000 +0000 @@ -12,6 +12,7 @@ use toml_edit::easy as toml; use url::Url; +use crate::core::compiler::rustdoc::RustdocScrapeExamples; use crate::core::compiler::{CompileKind, CrateType}; use crate::core::resolver::ResolveBehavior; use crate::core::{Dependency, PackageId, PackageIdSpec, SourceId, Summary}; @@ -220,6 +221,7 @@ for_host: bool, proc_macro: bool, edition: Edition, + doc_scrape_examples: RustdocScrapeExamples, } #[derive(Clone, PartialEq, Eq, PartialOrd, Ord)] @@ -373,6 +375,7 @@ for_host proc_macro edition + doc_scrape_examples )] } } @@ -648,6 +651,7 @@ harness: true, for_host: false, proc_macro: false, + doc_scrape_examples: RustdocScrapeExamples::Unset, edition, tested: true, benched: true, @@ -699,7 +703,8 @@ .set_name(name) .set_for_host(true) .set_benched(false) - .set_tested(false); + .set_tested(false) + .set_doc_scrape_examples(RustdocScrapeExamples::Disabled); target } @@ -710,7 +715,8 @@ .set_name(name) .set_for_host(true) .set_benched(false) - .set_tested(false); + .set_tested(false) + .set_doc_scrape_examples(RustdocScrapeExamples::Disabled); target } @@ -804,6 +810,9 @@ pub fn edition(&self) -> Edition { self.inner.edition } + pub fn doc_scrape_examples(&self) -> RustdocScrapeExamples { + self.inner.doc_scrape_examples + } pub fn benched(&self) -> bool { self.inner.benched } @@ -918,6 +927,13 @@ Arc::make_mut(&mut self.inner).edition = edition; self } + pub fn set_doc_scrape_examples( + &mut self, + doc_scrape_examples: RustdocScrapeExamples, + ) -> &mut Target { + Arc::make_mut(&mut self.inner).doc_scrape_examples = doc_scrape_examples; + self + } pub fn set_harness(&mut self, harness: bool) -> &mut Target { Arc::make_mut(&mut self.inner).harness = harness; self diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/package.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/package.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/package.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/package.rs 2023-01-10 13:38:26.000000000 +0000 @@ -703,13 +703,17 @@ let pkg = source .download(id) .with_context(|| "unable to get packages from source")?; - let (url, descriptor) = match pkg { + let (url, descriptor, authorization) = match pkg { MaybePackage::Ready(pkg) => { debug!("{} doesn't need a download", id); assert!(slot.fill(pkg).is_ok()); return Ok(Some(slot.borrow().unwrap())); } - MaybePackage::Download { url, descriptor } => (url, descriptor), + MaybePackage::Download { + url, + descriptor, + authorization, + } => (url, descriptor, authorization), }; // Ok we're going to download this crate, so let's set up all our @@ -726,6 +730,13 @@ handle.url(&url)?; handle.follow_location(true)?; // follow redirects + // Add authorization header. + if let Some(authorization) = authorization { + let mut headers = curl::easy::List::new(); + headers.append(&format!("Authorization: {}", authorization))?; + handle.http_headers(headers)?; + } + // Enable HTTP/2 to be used as it'll allow true multiplexing which makes // downloads much faster. // diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/shell.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/shell.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/shell.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/shell.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1,6 +1,7 @@ use std::fmt; use std::io::prelude::*; +use is_terminal::IsTerminal; use termcolor::Color::{Cyan, Green, Red, Yellow}; use termcolor::{self, Color, ColorSpec, StandardStream, WriteColor}; @@ -99,14 +100,10 @@ let auto_clr = ColorChoice::CargoAuto; Shell { output: ShellOut::Stream { - stdout: StandardStream::stdout( - auto_clr.to_termcolor_color_choice(atty::Stream::Stdout), - ), - stderr: StandardStream::stderr( - auto_clr.to_termcolor_color_choice(atty::Stream::Stderr), - ), + stdout: StandardStream::stdout(auto_clr.to_termcolor_color_choice(Stream::Stdout)), + stderr: StandardStream::stderr(auto_clr.to_termcolor_color_choice(Stream::Stderr)), color_choice: ColorChoice::CargoAuto, - stderr_tty: atty::is(atty::Stream::Stderr), + stderr_tty: std::io::stderr().is_terminal(), }, verbosity: Verbosity::Verbose, needs_clear: false, @@ -301,8 +298,8 @@ ), }; *color_choice = cfg; - *stdout = StandardStream::stdout(cfg.to_termcolor_color_choice(atty::Stream::Stdout)); - *stderr = StandardStream::stderr(cfg.to_termcolor_color_choice(atty::Stream::Stderr)); + *stdout = StandardStream::stdout(cfg.to_termcolor_color_choice(Stream::Stdout)); + *stderr = StandardStream::stderr(cfg.to_termcolor_color_choice(Stream::Stderr)); } Ok(()) } @@ -496,12 +493,12 @@ impl ColorChoice { /// Converts our color choice to termcolor's version. - fn to_termcolor_color_choice(self, stream: atty::Stream) -> termcolor::ColorChoice { + fn to_termcolor_color_choice(self, stream: Stream) -> termcolor::ColorChoice { match self { ColorChoice::Always => termcolor::ColorChoice::Always, ColorChoice::Never => termcolor::ColorChoice::Never, ColorChoice::CargoAuto => { - if atty::is(stream) { + if stream.is_terminal() { termcolor::ColorChoice::Auto } else { termcolor::ColorChoice::Never @@ -510,6 +507,20 @@ } } } + +enum Stream { + Stdout, + Stderr, +} + +impl Stream { + fn is_terminal(self) -> bool { + match self { + Self::Stdout => std::io::stdout().is_terminal(), + Self::Stderr => std::io::stderr().is_terminal(), + } + } +} #[cfg(unix)] mod imp { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/source/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/source/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/source/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/source/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -121,7 +121,11 @@ pub enum MaybePackage { Ready(Package), - Download { url: String, descriptor: String }, + Download { + url: String, + descriptor: String, + authorization: Option, + }, } impl<'a, T: Source + ?Sized + 'a> Source for Box { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/source/source_id.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/source/source_id.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/core/source/source_id.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/core/source/source_id.rs 2023-01-10 13:38:26.000000000 +0000 @@ -102,17 +102,11 @@ SourceId { inner } } - fn remote_source_kind(url: &Url) -> (SourceKind, Url) { + fn remote_source_kind(url: &Url) -> SourceKind { if url.as_str().starts_with("sparse+") { - let url = url - .to_string() - .strip_prefix("sparse+") - .expect("we just found that prefix") - .into_url() - .expect("a valid url without a protocol specifier should still be valid"); - (SourceKind::SparseRegistry, url) + SourceKind::SparseRegistry } else { - (SourceKind::Registry, url.to_owned()) + SourceKind::Registry } } @@ -196,14 +190,14 @@ /// Use [`SourceId::for_alt_registry`] if a name can provided, which /// generates better messages for cargo. pub fn for_registry(url: &Url) -> CargoResult { - let (kind, url) = Self::remote_source_kind(url); - SourceId::new(kind, url, None) + let kind = Self::remote_source_kind(url); + SourceId::new(kind, url.to_owned(), None) } /// Creates a `SourceId` from a remote registry URL with given name. pub fn for_alt_registry(url: &Url, name: &str) -> CargoResult { - let (kind, url) = Self::remote_source_kind(url); - SourceId::new(kind, url, Some(name)) + let kind = Self::remote_source_kind(url); + SourceId::new(kind, url.to_owned(), Some(name)) } /// Creates a SourceId from a local registry path. @@ -263,7 +257,7 @@ return Self::crates_io(config); } let url = config.get_registry_index(key)?; - let (kind, url) = Self::remote_source_kind(&url); + let kind = Self::remote_source_kind(&url); Ok(SourceId::wrap(SourceIdInner { kind, canonical_url: CanonicalUrl::new(&url)?, @@ -428,10 +422,7 @@ let url = self.inner.url.as_str(); url == CRATES_IO_INDEX || url == CRATES_IO_HTTP_INDEX - || std::env::var("__CARGO_TEST_CRATES_IO_URL_DO_NOT_USE_THIS") - .as_deref() - .map(|u| u.trim_start_matches("sparse+")) - == Ok(url) + || std::env::var("__CARGO_TEST_CRATES_IO_URL_DO_NOT_USE_THIS").as_deref() == Ok(url) } /// Hashes `self`. @@ -755,7 +746,7 @@ ref url, .. } => { - write!(f, "sparse+{url}") + write!(f, "{url}") } SourceIdInner { kind: SourceKind::LocalRegistry, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_add/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_add/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_add/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_add/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -289,7 +289,7 @@ } else { let mut source = crate::sources::GitSource::new(src.source_id()?, config)?; let packages = source.read_packages()?; - let package = infer_package(packages, &src)?; + let package = infer_package_for_git_source(packages, &src)?; Dependency::from(package.summary()) }; selected @@ -313,8 +313,10 @@ selected } else { let source = crate::sources::PathSource::new(&path, src.source_id()?, config); - let packages = source.read_packages()?; - let package = infer_package(packages, &src)?; + let package = source + .read_packages()? + .pop() + .expect("read_packages errors when no packages"); Dependency::from(package.summary()) }; selected @@ -599,11 +601,15 @@ } } -fn infer_package(mut packages: Vec, src: &dyn std::fmt::Display) -> CargoResult { +fn infer_package_for_git_source( + mut packages: Vec, + src: &dyn std::fmt::Display, +) -> CargoResult { let package = match packages.len() { - 0 => { - anyhow::bail!("no packages found at `{src}`"); - } + 0 => unreachable!( + "this function should only be called with packages from `GitSource::read_packages` \ + and that call should error for us when there are no packages" + ), 1 => packages.pop().expect("match ensured element is present"), _ => { let mut names: Vec<_> = packages @@ -611,7 +617,19 @@ .map(|p| p.name().as_str().to_owned()) .collect(); names.sort_unstable(); - anyhow::bail!("multiple packages found at `{src}`: {}", names.join(", ")); + anyhow::bail!( + "multiple packages found at `{src}`:\n {}\nTo disambiguate, run `cargo add --git {src} `", + names + .iter() + .map(|s| s.to_string()) + .coalesce(|x, y| if x.len() + y.len() < 78 { + Ok(format!("{x}, {y}")) + } else { + Err((x, y)) + }) + .into_iter() + .format("\n "), + ); } }; Ok(package) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_clean.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_clean.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_clean.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_clean.rs 2023-01-10 13:38:26.000000000 +0000 @@ -141,7 +141,12 @@ // Clean fingerprints. for (_, layout) in &layouts_with_host { let dir = escape_glob_path(layout.fingerprint())?; - rm_rf_glob(&Path::new(&dir).join(&pkg_dir), config, &mut progress)?; + rm_rf_package_glob_containing_hash( + &pkg.name(), + &Path::new(&dir).join(&pkg_dir), + config, + &mut progress, + )?; } for target in pkg.targets() { @@ -149,7 +154,12 @@ // Get both the build_script_build and the output directory. for (_, layout) in &layouts_with_host { let dir = escape_glob_path(layout.build())?; - rm_rf_glob(&Path::new(&dir).join(&pkg_dir), config, &mut progress)?; + rm_rf_package_glob_containing_hash( + &pkg.name(), + &Path::new(&dir).join(&pkg_dir), + config, + &mut progress, + )?; } continue; } @@ -222,6 +232,40 @@ Ok(glob::Pattern::escape(pattern)) } +/// Glob remove artifacts for the provided `package` +/// +/// Make sure the artifact is for `package` and not another crate that is prefixed by +/// `package` by getting the original name stripped of the trailing hash and possible +/// extension +fn rm_rf_package_glob_containing_hash( + package: &str, + pattern: &Path, + config: &Config, + progress: &mut dyn CleaningProgressBar, +) -> CargoResult<()> { + // TODO: Display utf8 warning to user? Or switch to globset? + let pattern = pattern + .to_str() + .ok_or_else(|| anyhow::anyhow!("expected utf-8 path"))?; + for path in glob::glob(pattern)? { + let path = path?; + + let pkg_name = path + .file_name() + .and_then(std::ffi::OsStr::to_str) + .and_then(|artifact| artifact.rsplit_once('-')) + .ok_or_else(|| anyhow::anyhow!("expected utf-8 path"))? + .0; + + if pkg_name != package { + continue; + } + + rm_rf(&path, config, progress)?; + } + Ok(()) +} + fn rm_rf_glob( pattern: &Path, config: &Config, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/compile_filter.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/compile_filter.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/compile_filter.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/compile_filter.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1,10 +1,11 @@ //! Filters and their rules to select which Cargo targets will be built. use crate::core::compiler::CompileMode; + use crate::core::{Target, TargetKind}; use crate::util::restricted_names::is_glob_pattern; -#[derive(Debug, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq, Clone)] /// Indicates whether or not the library target gets included. pub enum LibRule { /// Include the library, fail if not present @@ -15,7 +16,7 @@ False, } -#[derive(Debug)] +#[derive(Debug, Clone)] /// Indicates which Cargo targets will be selected to be built. pub enum FilterRule { /// All included. @@ -27,11 +28,11 @@ /// Filter to apply to the root package to select which Cargo targets will be built. /// (examples, bins, benches, tests, ...) /// -/// The actual filter process happens inside [`generate_targets`]. +/// The actual filter process happens inside [`generate_units`]. /// /// Not to be confused with [`Packages`], which opts in packages to be built. /// -/// [`generate_targets`]: super::generate_targets +/// [`generate_units`]: super::UnitGenerator::generate_units /// [`Packages`]: crate::ops::Packages #[derive(Debug)] pub enum CompileFilter { @@ -175,7 +176,7 @@ /// may include additional example targets to ensure they can be compiled. /// /// Note that the actual behavior is subject to `filter_default_targets` - /// and `generate_targets` though. + /// and `generate_units` though. pub fn all_test_targets() -> Self { Self::Only { all_targets: false, @@ -233,7 +234,7 @@ } /// Selects targets for "cargo run". for logic to select targets for other - /// subcommands, see `generate_targets` and `filter_default_targets`. + /// subcommands, see `generate_units` and `filter_default_targets`. pub fn target_run(&self, target: &Target) -> bool { match *self { CompileFilter::Default { .. } => true, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -7,10 +7,10 @@ //! rough outline is: //! //! - Resolve the dependency graph (see [`ops::resolve`]). -//! - Download any packages needed (see [`PackageSet`]). +//! - Download any packages needed (see [`PackageSet`](crate::core::PackageSet)). //! - Generate a list of top-level "units" of work for the targets the user //! requested on the command-line. Each [`Unit`] corresponds to a compiler -//! invocation. This is done in this module ([`generate_targets`]). +//! invocation. This is done in this module ([`UnitGenerator::generate_units`]). //! - Build the graph of `Unit` dependencies (see [`unit_dependencies`]). //! - Create a [`Context`] which will perform the following steps: //! - Prepare the `target` directory (see [`Layout`]). @@ -30,34 +30,35 @@ //! ["Cargo Target"]: https://doc.rust-lang.org/nightly/cargo/reference/cargo-targets.html use std::collections::{HashMap, HashSet}; -use std::fmt::Write; use std::hash::{Hash, Hasher}; use std::sync::Arc; -use crate::core::compiler::unit_dependencies::{build_unit_dependencies, IsArtifact}; +use crate::core::compiler::rustdoc::RustdocScrapeExamples; +use crate::core::compiler::unit_dependencies::build_unit_dependencies; use crate::core::compiler::unit_graph::{self, UnitDep, UnitGraph}; use crate::core::compiler::{standard_lib, CrateType, TargetInfo}; use crate::core::compiler::{BuildConfig, BuildContext, Compilation, Context}; use crate::core::compiler::{CompileKind, CompileMode, CompileTarget, RustcTargetData, Unit}; use crate::core::compiler::{DefaultExecutor, Executor, UnitInterner}; -use crate::core::profiles::{Profiles, UnitFor}; +use crate::core::profiles::Profiles; use crate::core::resolver::features::{self, CliFeatures, FeaturesFor}; use crate::core::resolver::{HasDevUnits, Resolve}; -use crate::core::{FeatureValue, Package, PackageSet, Shell, Summary, Target}; -use crate::core::{PackageId, SourceId, TargetKind, Workspace}; +use crate::core::{PackageId, PackageSet, SourceId, TargetKind, Workspace}; use crate::drop_println; use crate::ops; use crate::ops::resolve::WorkspaceResolve; use crate::util::config::Config; use crate::util::interning::InternedString; -use crate::util::restricted_names::is_glob_pattern; -use crate::util::{closest_msg, profile, CargoResult, StableHasher}; +use crate::util::{profile, CargoResult, StableHasher}; mod compile_filter; pub use compile_filter::{CompileFilter, FilterRule, LibRule}; +mod unit_generator; +use unit_generator::UnitGenerator; + mod packages; -use packages::build_glob; + pub use packages::Packages; /// Contains information about how a package should be compiled. @@ -233,27 +234,34 @@ let target_data = RustcTargetData::new(ws, &build_config.requested_kinds)?; - let all_packages = &Packages::All; - let rustdoc_scrape_examples = &config.cli_unstable().rustdoc_scrape_examples; - let need_reverse_dependencies = rustdoc_scrape_examples.is_some(); - let full_specs = if need_reverse_dependencies { - all_packages - } else { - spec - }; + let specs = spec.to_package_id_specs(ws)?; + let has_dev_units = { + // Rustdoc itself doesn't need dev-dependencies. But to scrape examples from packages in the + // workspace, if any of those packages need dev-dependencies, then we need include dev-dependencies + // to scrape those packages. + let any_pkg_has_scrape_enabled = ws + .members_with_features(&specs, cli_features)? + .iter() + .any(|(pkg, _)| { + pkg.targets() + .iter() + .any(|target| target.is_example() && target.doc_scrape_examples().is_enabled()) + }); - let resolve_specs = full_specs.to_package_id_specs(ws)?; - let has_dev_units = if filter.need_dev_deps(build_config.mode) || need_reverse_dependencies { - HasDevUnits::Yes - } else { - HasDevUnits::No + if filter.need_dev_deps(build_config.mode) + || (build_config.mode.is_doc() && any_pkg_has_scrape_enabled) + { + HasDevUnits::Yes + } else { + HasDevUnits::No + } }; let resolve = ops::resolve_ws_with_opts( ws, &target_data, &build_config.requested_kinds, cli_features, - &resolve_specs, + &specs, has_dev_units, crate::core::resolver::features::ForceAllTargets::No, )?; @@ -276,11 +284,6 @@ // Find the packages in the resolver that the user wants to build (those // passed in with `-p` or the defaults from the workspace), and convert // Vec to a Vec. - let specs = if need_reverse_dependencies { - spec.to_package_id_specs(ws)? - } else { - resolve_specs.clone() - }; let to_build_ids = resolve.specs_to_ids(&specs)?; // Now get the `Package` for each `PackageId`. This may trigger a download // if the user specified `-p` for a dependency that is not downloaded. @@ -341,70 +344,52 @@ .collect(); // Passing `build_config.requested_kinds` instead of - // `explicit_host_kinds` here so that `generate_targets` can do + // `explicit_host_kinds` here so that `generate_units` can do // its own special handling of `CompileKind::Host`. It will // internally replace the host kind by the `explicit_host_kind` // before setting as a unit. - let mut units = generate_targets( + let generator = UnitGenerator { ws, - &to_builds, + packages: &to_builds, filter, - &build_config.requested_kinds, + requested_kinds: &build_config.requested_kinds, explicit_host_kind, - build_config.mode, - &resolve, - &workspace_resolve, - &resolved_features, - &pkg_set, - &profiles, + mode: build_config.mode, + resolve: &resolve, + workspace_resolve: &workspace_resolve, + resolved_features: &resolved_features, + package_set: &pkg_set, + profiles: &profiles, interner, - )?; + has_dev_units, + }; + let mut units = generator.generate_units()?; if let Some(args) = target_rustc_crate_types { override_rustc_crate_types(&mut units, args, interner)?; } - let mut scrape_units = match rustdoc_scrape_examples { - Some(arg) => { - let filter = match arg.as_str() { - "all" => CompileFilter::new_all_targets(), - "examples" => CompileFilter::new( - LibRule::False, - FilterRule::none(), - FilterRule::none(), - FilterRule::All, - FilterRule::none(), - ), - _ => { - anyhow::bail!( - r#"-Z rustdoc-scrape-examples must take "all" or "examples" as an argument"# - ) - } - }; - let to_build_ids = resolve.specs_to_ids(&resolve_specs)?; - let to_builds = pkg_set.get_many(to_build_ids)?; - let mode = CompileMode::Docscrape; - - generate_targets( - ws, - &to_builds, - &filter, - &build_config.requested_kinds, - explicit_host_kind, - mode, - &resolve, - &workspace_resolve, - &resolved_features, - &pkg_set, - &profiles, - interner, - )? + let should_scrape = build_config.mode.is_doc() && config.cli_unstable().rustdoc_scrape_examples; + let mut scrape_units = if should_scrape { + let scrape_generator = UnitGenerator { + mode: CompileMode::Docscrape, + ..generator + }; + let all_units = scrape_generator.generate_units()?; + + let valid_units = all_units .into_iter() - // Proc macros should not be scraped for functions, since they only export macros - .filter(|unit| !unit.target.proc_macro()) - .collect::>() - } - None => Vec::new(), + .filter(|unit| { + ws.unit_needs_doc_scrape(unit) + && !matches!( + unit.target.doc_scrape_examples(), + RustdocScrapeExamples::Disabled + ) + }) + .collect::>(); + valid_units + } else { + Vec::new() }; let std_roots = if let Some(crates) = standard_lib::std_crates(config, Some(&units)) { @@ -565,636 +550,6 @@ Ok(bcx) } -/// A proposed target. -/// -/// Proposed targets are later filtered into actual `Unit`s based on whether or -/// not the target requires its features to be present. -#[derive(Debug)] -struct Proposal<'a> { - pkg: &'a Package, - target: &'a Target, - /// Indicates whether or not all required features *must* be present. If - /// false, and the features are not available, then it will be silently - /// skipped. Generally, targets specified by name (`--bin foo`) are - /// required, all others can be silently skipped if features are missing. - requires_features: bool, - mode: CompileMode, -} - -/// Generates all the base targets for the packages the user has requested to -/// compile. Dependencies for these targets are computed later in `unit_dependencies`. -fn generate_targets( - ws: &Workspace<'_>, - packages: &[&Package], - filter: &CompileFilter, - requested_kinds: &[CompileKind], - explicit_host_kind: CompileKind, - mode: CompileMode, - resolve: &Resolve, - workspace_resolve: &Option, - resolved_features: &features::ResolvedFeatures, - package_set: &PackageSet<'_>, - profiles: &Profiles, - interner: &UnitInterner, -) -> CargoResult> { - let config = ws.config(); - // Helper for creating a list of `Unit` structures - let new_unit = |units: &mut HashSet, - pkg: &Package, - target: &Target, - initial_target_mode: CompileMode| { - // Custom build units are added in `build_unit_dependencies`. - assert!(!target.is_custom_build()); - let target_mode = match initial_target_mode { - CompileMode::Test => { - if target.is_example() && !filter.is_specific() && !target.tested() { - // Examples are included as regular binaries to verify - // that they compile. - CompileMode::Build - } else { - CompileMode::Test - } - } - CompileMode::Build => match *target.kind() { - TargetKind::Test => CompileMode::Test, - TargetKind::Bench => CompileMode::Bench, - _ => CompileMode::Build, - }, - // `CompileMode::Bench` is only used to inform `filter_default_targets` - // which command is being used (`cargo bench`). Afterwards, tests - // and benches are treated identically. Switching the mode allows - // de-duplication of units that are essentially identical. For - // example, `cargo build --all-targets --release` creates the units - // (lib profile:bench, mode:test) and (lib profile:bench, mode:bench) - // and since these are the same, we want them to be de-duplicated in - // `unit_dependencies`. - CompileMode::Bench => CompileMode::Test, - _ => initial_target_mode, - }; - - let is_local = pkg.package_id().source_id().is_path(); - - // No need to worry about build-dependencies, roots are never build dependencies. - let features_for = FeaturesFor::from_for_host(target.proc_macro()); - let features = resolved_features.activated_features(pkg.package_id(), features_for); - - // If `--target` has not been specified, then the unit - // graph is built almost like if `--target $HOST` was - // specified. See `rebuild_unit_graph_shared` for more on - // why this is done. However, if the package has its own - // `package.target` key, then this gets used instead of - // `$HOST` - let explicit_kinds = if let Some(k) = pkg.manifest().forced_kind() { - vec![k] - } else { - requested_kinds - .iter() - .map(|kind| match kind { - CompileKind::Host => { - pkg.manifest().default_kind().unwrap_or(explicit_host_kind) - } - CompileKind::Target(t) => CompileKind::Target(*t), - }) - .collect() - }; - - for kind in explicit_kinds.iter() { - let unit_for = if initial_target_mode.is_any_test() { - // NOTE: the `UnitFor` here is subtle. If you have a profile - // with `panic` set, the `panic` flag is cleared for - // tests/benchmarks and their dependencies. If this - // was `normal`, then the lib would get compiled three - // times (once with panic, once without, and once with - // `--test`). - // - // This would cause a problem for doc tests, which would fail - // because `rustdoc` would attempt to link with both libraries - // at the same time. Also, it's probably not important (or - // even desirable?) for rustdoc to link with a lib with - // `panic` set. - // - // As a consequence, Examples and Binaries get compiled - // without `panic` set. This probably isn't a bad deal. - // - // Forcing the lib to be compiled three times during `cargo - // test` is probably also not desirable. - UnitFor::new_test(config, *kind) - } else if target.for_host() { - // Proc macro / plugin should not have `panic` set. - UnitFor::new_compiler(*kind) - } else { - UnitFor::new_normal(*kind) - }; - let profile = profiles.get_profile( - pkg.package_id(), - ws.is_member(pkg), - is_local, - unit_for, - *kind, - ); - let unit = interner.intern( - pkg, - target, - profile, - kind.for_target(target), - target_mode, - features.clone(), - /*is_std*/ false, - /*dep_hash*/ 0, - IsArtifact::No, - ); - units.insert(unit); - } - }; - - // Create a list of proposed targets. - let mut proposals: Vec> = Vec::new(); - - match *filter { - CompileFilter::Default { - required_features_filterable, - } => { - for pkg in packages { - let default = filter_default_targets(pkg.targets(), mode); - proposals.extend(default.into_iter().map(|target| Proposal { - pkg, - target, - requires_features: !required_features_filterable, - mode, - })); - if mode == CompileMode::Test { - if let Some(t) = pkg - .targets() - .iter() - .find(|t| t.is_lib() && t.doctested() && t.doctestable()) - { - proposals.push(Proposal { - pkg, - target: t, - requires_features: false, - mode: CompileMode::Doctest, - }); - } - } - } - } - CompileFilter::Only { - all_targets, - ref lib, - ref bins, - ref examples, - ref tests, - ref benches, - } => { - if *lib != LibRule::False { - let mut libs = Vec::new(); - for proposal in filter_targets(packages, Target::is_lib, false, mode) { - let Proposal { target, pkg, .. } = proposal; - if mode.is_doc_test() && !target.doctestable() { - let types = target.rustc_crate_types(); - let types_str: Vec<&str> = types.iter().map(|t| t.as_str()).collect(); - ws.config().shell().warn(format!( - "doc tests are not supported for crate type(s) `{}` in package `{}`", - types_str.join(", "), - pkg.name() - ))?; - } else { - libs.push(proposal) - } - } - if !all_targets && libs.is_empty() && *lib == LibRule::True { - let names = packages.iter().map(|pkg| pkg.name()).collect::>(); - if names.len() == 1 { - anyhow::bail!("no library targets found in package `{}`", names[0]); - } else { - anyhow::bail!("no library targets found in packages: {}", names.join(", ")); - } - } - proposals.extend(libs); - } - - // If `--tests` was specified, add all targets that would be - // generated by `cargo test`. - let test_filter = match tests { - FilterRule::All => Target::tested, - FilterRule::Just(_) => Target::is_test, - }; - let test_mode = match mode { - CompileMode::Build => CompileMode::Test, - CompileMode::Check { .. } => CompileMode::Check { test: true }, - _ => mode, - }; - // If `--benches` was specified, add all targets that would be - // generated by `cargo bench`. - let bench_filter = match benches { - FilterRule::All => Target::benched, - FilterRule::Just(_) => Target::is_bench, - }; - let bench_mode = match mode { - CompileMode::Build => CompileMode::Bench, - CompileMode::Check { .. } => CompileMode::Check { test: true }, - _ => mode, - }; - - proposals.extend(list_rule_targets( - packages, - bins, - "bin", - Target::is_bin, - mode, - )?); - proposals.extend(list_rule_targets( - packages, - examples, - "example", - Target::is_example, - mode, - )?); - proposals.extend(list_rule_targets( - packages, - tests, - "test", - test_filter, - test_mode, - )?); - proposals.extend(list_rule_targets( - packages, - benches, - "bench", - bench_filter, - bench_mode, - )?); - } - } - - // Only include targets that are libraries or have all required - // features available. - // - // `features_map` is a map of &Package -> enabled_features - // It is computed by the set of enabled features for the package plus - // every enabled feature of every enabled dependency. - let mut features_map = HashMap::new(); - // This needs to be a set to de-duplicate units. Due to the way the - // targets are filtered, it is possible to have duplicate proposals for - // the same thing. - let mut units = HashSet::new(); - for Proposal { - pkg, - target, - requires_features, - mode, - } in proposals - { - let unavailable_features = match target.required_features() { - Some(rf) => { - validate_required_features( - workspace_resolve, - target.name(), - rf, - pkg.summary(), - &mut config.shell(), - )?; - - let features = features_map.entry(pkg).or_insert_with(|| { - resolve_all_features(resolve, resolved_features, package_set, pkg.package_id()) - }); - rf.iter().filter(|f| !features.contains(*f)).collect() - } - None => Vec::new(), - }; - if target.is_lib() || unavailable_features.is_empty() { - new_unit(&mut units, pkg, target, mode); - } else if requires_features { - let required_features = target.required_features().unwrap(); - let quoted_required_features: Vec = required_features - .iter() - .map(|s| format!("`{}`", s)) - .collect(); - anyhow::bail!( - "target `{}` in package `{}` requires the features: {}\n\ - Consider enabling them by passing, e.g., `--features=\"{}\"`", - target.name(), - pkg.name(), - quoted_required_features.join(", "), - required_features.join(" ") - ); - } - // else, silently skip target. - } - let mut units: Vec<_> = units.into_iter().collect(); - unmatched_target_filters(&units, filter, &mut ws.config().shell())?; - - // Keep the roots in a consistent order, which helps with checking test output. - units.sort_unstable(); - Ok(units) -} - -/// Checks if the unit list is empty and the user has passed any combination of -/// --tests, --examples, --benches or --bins, and we didn't match on any targets. -/// We want to emit a warning to make sure the user knows that this run is a no-op, -/// and their code remains unchecked despite cargo not returning any errors -fn unmatched_target_filters( - units: &[Unit], - filter: &CompileFilter, - shell: &mut Shell, -) -> CargoResult<()> { - if let CompileFilter::Only { - all_targets, - lib: _, - ref bins, - ref examples, - ref tests, - ref benches, - } = *filter - { - if units.is_empty() { - let mut filters = String::new(); - let mut miss_count = 0; - - let mut append = |t: &FilterRule, s| { - if let FilterRule::All = *t { - miss_count += 1; - filters.push_str(s); - } - }; - - if all_targets { - filters.push_str(" `all-targets`"); - } else { - append(bins, " `bins`,"); - append(tests, " `tests`,"); - append(examples, " `examples`,"); - append(benches, " `benches`,"); - filters.pop(); - } - - return shell.warn(format!( - "Target {}{} specified, but no targets matched. This is a no-op", - if miss_count > 1 { "filters" } else { "filter" }, - filters, - )); - } - } - - Ok(()) -} - -/// Warns if a target's required-features references a feature that doesn't exist. -/// -/// This is a warning because historically this was not validated, and it -/// would cause too much breakage to make it an error. -fn validate_required_features( - resolve: &Option, - target_name: &str, - required_features: &[String], - summary: &Summary, - shell: &mut Shell, -) -> CargoResult<()> { - let resolve = match resolve { - None => return Ok(()), - Some(resolve) => resolve, - }; - - for feature in required_features { - let fv = FeatureValue::new(feature.into()); - match &fv { - FeatureValue::Feature(f) => { - if !summary.features().contains_key(f) { - shell.warn(format!( - "invalid feature `{}` in required-features of target `{}`: \ - `{}` is not present in [features] section", - fv, target_name, fv - ))?; - } - } - FeatureValue::Dep { .. } => { - anyhow::bail!( - "invalid feature `{}` in required-features of target `{}`: \ - `dep:` prefixed feature values are not allowed in required-features", - fv, - target_name - ); - } - FeatureValue::DepFeature { weak: true, .. } => { - anyhow::bail!( - "invalid feature `{}` in required-features of target `{}`: \ - optional dependency with `?` is not allowed in required-features", - fv, - target_name - ); - } - // Handling of dependent_crate/dependent_crate_feature syntax - FeatureValue::DepFeature { - dep_name, - dep_feature, - weak: false, - } => { - match resolve - .deps(summary.package_id()) - .find(|(_dep_id, deps)| deps.iter().any(|dep| dep.name_in_toml() == *dep_name)) - { - Some((dep_id, _deps)) => { - let dep_summary = resolve.summary(dep_id); - if !dep_summary.features().contains_key(dep_feature) - && !dep_summary - .dependencies() - .iter() - .any(|dep| dep.name_in_toml() == *dep_feature && dep.is_optional()) - { - shell.warn(format!( - "invalid feature `{}` in required-features of target `{}`: \ - feature `{}` does not exist in package `{}`", - fv, target_name, dep_feature, dep_id - ))?; - } - } - None => { - shell.warn(format!( - "invalid feature `{}` in required-features of target `{}`: \ - dependency `{}` does not exist", - fv, target_name, dep_name - ))?; - } - } - } - } - } - Ok(()) -} - -/// Gets all of the features enabled for a package, plus its dependencies' -/// features. -/// -/// Dependencies are added as `dep_name/feat_name` because `required-features` -/// wants to support that syntax. -pub fn resolve_all_features( - resolve_with_overrides: &Resolve, - resolved_features: &features::ResolvedFeatures, - package_set: &PackageSet<'_>, - package_id: PackageId, -) -> HashSet { - let mut features: HashSet = resolved_features - .activated_features(package_id, FeaturesFor::NormalOrDev) - .iter() - .map(|s| s.to_string()) - .collect(); - - // Include features enabled for use by dependencies so targets can also use them with the - // required-features field when deciding whether to be built or skipped. - for (dep_id, deps) in resolve_with_overrides.deps(package_id) { - let is_proc_macro = package_set - .get_one(dep_id) - .expect("packages downloaded") - .proc_macro(); - for dep in deps { - let features_for = FeaturesFor::from_for_host(is_proc_macro || dep.is_build()); - for feature in resolved_features - .activated_features_unverified(dep_id, features_for) - .unwrap_or_default() - { - features.insert(format!("{}/{}", dep.name_in_toml(), feature)); - } - } - } - - features -} - -/// Given a list of all targets for a package, filters out only the targets -/// that are automatically included when the user doesn't specify any targets. -fn filter_default_targets(targets: &[Target], mode: CompileMode) -> Vec<&Target> { - match mode { - CompileMode::Bench => targets.iter().filter(|t| t.benched()).collect(), - CompileMode::Test => targets - .iter() - .filter(|t| t.tested() || t.is_example()) - .collect(), - CompileMode::Build | CompileMode::Check { .. } => targets - .iter() - .filter(|t| t.is_bin() || t.is_lib()) - .collect(), - CompileMode::Doc { .. } => { - // `doc` does lib and bins (bin with same name as lib is skipped). - targets - .iter() - .filter(|t| { - t.documented() - && (!t.is_bin() - || !targets.iter().any(|l| l.is_lib() && l.name() == t.name())) - }) - .collect() - } - CompileMode::Doctest | CompileMode::Docscrape | CompileMode::RunCustomBuild => { - panic!("Invalid mode {:?}", mode) - } - } -} - -/// Returns a list of proposed targets based on command-line target selection flags. -fn list_rule_targets<'a>( - packages: &[&'a Package], - rule: &FilterRule, - target_desc: &'static str, - is_expected_kind: fn(&Target) -> bool, - mode: CompileMode, -) -> CargoResult>> { - let mut proposals = Vec::new(); - match rule { - FilterRule::All => { - proposals.extend(filter_targets(packages, is_expected_kind, false, mode)) - } - FilterRule::Just(names) => { - for name in names { - proposals.extend(find_named_targets( - packages, - name, - target_desc, - is_expected_kind, - mode, - )?); - } - } - } - Ok(proposals) -} - -/// Finds the targets for a specifically named target. -fn find_named_targets<'a>( - packages: &[&'a Package], - target_name: &str, - target_desc: &'static str, - is_expected_kind: fn(&Target) -> bool, - mode: CompileMode, -) -> CargoResult>> { - let is_glob = is_glob_pattern(target_name); - let proposals = if is_glob { - let pattern = build_glob(target_name)?; - let filter = |t: &Target| is_expected_kind(t) && pattern.matches(t.name()); - filter_targets(packages, filter, true, mode) - } else { - let filter = |t: &Target| t.name() == target_name && is_expected_kind(t); - filter_targets(packages, filter, true, mode) - }; - - if proposals.is_empty() { - let targets = packages - .iter() - .flat_map(|pkg| { - pkg.targets() - .iter() - .filter(|target| is_expected_kind(target)) - }) - .collect::>(); - let suggestion = closest_msg(target_name, targets.iter(), |t| t.name()); - if !suggestion.is_empty() { - anyhow::bail!( - "no {} target {} `{}`{}", - target_desc, - if is_glob { "matches pattern" } else { "named" }, - target_name, - suggestion - ); - } else { - let mut msg = String::new(); - writeln!( - msg, - "no {} target {} `{}`.", - target_desc, - if is_glob { "matches pattern" } else { "named" }, - target_name, - )?; - if !targets.is_empty() { - writeln!(msg, "Available {} targets:", target_desc)?; - for target in targets { - writeln!(msg, " {}", target.name())?; - } - } - anyhow::bail!(msg); - } - } - Ok(proposals) -} - -fn filter_targets<'a>( - packages: &[&'a Package], - predicate: impl Fn(&Target) -> bool, - requires_features: bool, - mode: CompileMode, -) -> Vec> { - let mut proposals = Vec::new(); - for pkg in packages { - for target in pkg.targets().iter().filter(|t| predicate(t)) { - proposals.push(Proposal { - pkg, - target, - requires_features, - mode, - }); - } - } - proposals -} - /// This is used to rebuild the unit graph, sharing host dependencies if possible. /// /// This will translate any unit's `CompileKind::Target(host)` to @@ -1232,6 +587,9 @@ traverse_and_share(interner, &mut memo, &mut result, &unit_graph, root, to_host) }) .collect(); + // If no unit in the unit graph ended up having scrape units attached as dependencies, + // then they won't have been discovered in traverse_and_share and hence won't be in + // memo. So we filter out missing scrape units. let new_scrape_units = scrape_units .iter() .map(|unit| memo.get(unit).unwrap().clone()) @@ -1458,3 +816,41 @@ Ok(()) } + +/// Gets all of the features enabled for a package, plus its dependencies' +/// features. +/// +/// Dependencies are added as `dep_name/feat_name` because `required-features` +/// wants to support that syntax. +pub fn resolve_all_features( + resolve_with_overrides: &Resolve, + resolved_features: &features::ResolvedFeatures, + package_set: &PackageSet<'_>, + package_id: PackageId, +) -> HashSet { + let mut features: HashSet = resolved_features + .activated_features(package_id, FeaturesFor::NormalOrDev) + .iter() + .map(|s| s.to_string()) + .collect(); + + // Include features enabled for use by dependencies so targets can also use them with the + // required-features field when deciding whether to be built or skipped. + for (dep_id, deps) in resolve_with_overrides.deps(package_id) { + let is_proc_macro = package_set + .get_one(dep_id) + .expect("packages downloaded") + .proc_macro(); + for dep in deps { + let features_for = FeaturesFor::from_for_host(is_proc_macro || dep.is_build()); + for feature in resolved_features + .activated_features_unverified(dep_id, features_for) + .unwrap_or_default() + { + features.insert(format!("{}/{}", dep.name_in_toml(), feature)); + } + } + } + + features +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/unit_generator.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/unit_generator.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/unit_generator.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_compile/unit_generator.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,666 @@ +use std::collections::{HashMap, HashSet}; +use std::fmt::Write; + +use crate::core::compiler::rustdoc::RustdocScrapeExamples; +use crate::core::compiler::unit_dependencies::IsArtifact; +use crate::core::compiler::UnitInterner; +use crate::core::compiler::{CompileKind, CompileMode, Unit}; +use crate::core::dependency::DepKind; +use crate::core::profiles::{Profiles, UnitFor}; +use crate::core::resolver::features::{self, FeaturesFor}; +use crate::core::resolver::{HasDevUnits, Resolve}; +use crate::core::{FeatureValue, Package, PackageSet, Summary, Target}; +use crate::core::{TargetKind, Workspace}; +use crate::util::restricted_names::is_glob_pattern; +use crate::util::{closest_msg, CargoResult}; + +use super::compile_filter::{CompileFilter, FilterRule, LibRule}; +use super::packages::build_glob; + +/// A proposed target. +/// +/// Proposed targets are later filtered into actual `Unit`s based on whether or +/// not the target requires its features to be present. +#[derive(Debug)] +struct Proposal<'a> { + pkg: &'a Package, + target: &'a Target, + /// Indicates whether or not all required features *must* be present. If + /// false, and the features are not available, then it will be silently + /// skipped. Generally, targets specified by name (`--bin foo`) are + /// required, all others can be silently skipped if features are missing. + requires_features: bool, + mode: CompileMode, +} + +/// The context needed for generating units. +pub(super) struct UnitGenerator<'a, 'cfg> { + pub ws: &'a Workspace<'cfg>, + pub packages: &'a [&'a Package], + pub filter: &'a CompileFilter, + pub requested_kinds: &'a [CompileKind], + pub explicit_host_kind: CompileKind, + pub mode: CompileMode, + pub resolve: &'a Resolve, + pub workspace_resolve: &'a Option, + pub resolved_features: &'a features::ResolvedFeatures, + pub package_set: &'a PackageSet<'cfg>, + pub profiles: &'a Profiles, + pub interner: &'a UnitInterner, + pub has_dev_units: HasDevUnits, +} + +impl<'a> UnitGenerator<'a, '_> { + /// Helper for creating a list of `Unit` structures + fn new_units( + &self, + pkg: &Package, + target: &Target, + initial_target_mode: CompileMode, + ) -> Vec { + // Custom build units are added in `build_unit_dependencies`. + assert!(!target.is_custom_build()); + let target_mode = match initial_target_mode { + CompileMode::Test => { + if target.is_example() && !self.filter.is_specific() && !target.tested() { + // Examples are included as regular binaries to verify + // that they compile. + CompileMode::Build + } else { + CompileMode::Test + } + } + CompileMode::Build => match *target.kind() { + TargetKind::Test => CompileMode::Test, + TargetKind::Bench => CompileMode::Bench, + _ => CompileMode::Build, + }, + // `CompileMode::Bench` is only used to inform `filter_default_targets` + // which command is being used (`cargo bench`). Afterwards, tests + // and benches are treated identically. Switching the mode allows + // de-duplication of units that are essentially identical. For + // example, `cargo build --all-targets --release` creates the units + // (lib profile:bench, mode:test) and (lib profile:bench, mode:bench) + // and since these are the same, we want them to be de-duplicated in + // `unit_dependencies`. + CompileMode::Bench => CompileMode::Test, + _ => initial_target_mode, + }; + + let is_local = pkg.package_id().source_id().is_path(); + + // No need to worry about build-dependencies, roots are never build dependencies. + let features_for = FeaturesFor::from_for_host(target.proc_macro()); + let features = self + .resolved_features + .activated_features(pkg.package_id(), features_for); + + // If `--target` has not been specified, then the unit + // graph is built almost like if `--target $HOST` was + // specified. See `rebuild_unit_graph_shared` for more on + // why this is done. However, if the package has its own + // `package.target` key, then this gets used instead of + // `$HOST` + let explicit_kinds = if let Some(k) = pkg.manifest().forced_kind() { + vec![k] + } else { + self.requested_kinds + .iter() + .map(|kind| match kind { + CompileKind::Host => pkg + .manifest() + .default_kind() + .unwrap_or(self.explicit_host_kind), + CompileKind::Target(t) => CompileKind::Target(*t), + }) + .collect() + }; + + explicit_kinds + .into_iter() + .map(move |kind| { + let unit_for = if initial_target_mode.is_any_test() { + // NOTE: the `UnitFor` here is subtle. If you have a profile + // with `panic` set, the `panic` flag is cleared for + // tests/benchmarks and their dependencies. If this + // was `normal`, then the lib would get compiled three + // times (once with panic, once without, and once with + // `--test`). + // + // This would cause a problem for doc tests, which would fail + // because `rustdoc` would attempt to link with both libraries + // at the same time. Also, it's probably not important (or + // even desirable?) for rustdoc to link with a lib with + // `panic` set. + // + // As a consequence, Examples and Binaries get compiled + // without `panic` set. This probably isn't a bad deal. + // + // Forcing the lib to be compiled three times during `cargo + // test` is probably also not desirable. + UnitFor::new_test(self.ws.config(), kind) + } else if target.for_host() { + // Proc macro / plugin should not have `panic` set. + UnitFor::new_compiler(kind) + } else { + UnitFor::new_normal(kind) + }; + let profile = self.profiles.get_profile( + pkg.package_id(), + self.ws.is_member(pkg), + is_local, + unit_for, + kind, + ); + self.interner.intern( + pkg, + target, + profile, + kind.for_target(target), + target_mode, + features.clone(), + /*is_std*/ false, + /*dep_hash*/ 0, + IsArtifact::No, + ) + }) + .collect() + } + + /// Given a list of all targets for a package, filters out only the targets + /// that are automatically included when the user doesn't specify any targets. + fn filter_default_targets<'b>(&self, targets: &'b [Target]) -> Vec<&'b Target> { + match self.mode { + CompileMode::Bench => targets.iter().filter(|t| t.benched()).collect(), + CompileMode::Test => targets + .iter() + .filter(|t| t.tested() || t.is_example()) + .collect(), + CompileMode::Build | CompileMode::Check { .. } => targets + .iter() + .filter(|t| t.is_bin() || t.is_lib()) + .collect(), + CompileMode::Doc { .. } | CompileMode::Docscrape => { + // `doc` does lib and bins (bin with same name as lib is skipped). + targets + .iter() + .filter(|t| { + t.documented() + && (!t.is_bin() + || !targets.iter().any(|l| l.is_lib() && l.name() == t.name())) + }) + .collect() + } + CompileMode::Doctest | CompileMode::RunCustomBuild => { + panic!("Invalid mode {:?}", self.mode) + } + } + } + + /// Filters the set of all possible targets based on the provided predicate. + fn filter_targets( + &self, + predicate: impl Fn(&Target) -> bool, + requires_features: bool, + mode: CompileMode, + ) -> Vec> { + self.packages + .iter() + .flat_map(|pkg| { + pkg.targets() + .iter() + .filter(|t| predicate(t)) + .map(|target| Proposal { + pkg, + target, + requires_features, + mode, + }) + }) + .collect() + } + + /// Finds the targets for a specifically named target. + fn find_named_targets( + &self, + target_name: &str, + target_desc: &'static str, + is_expected_kind: fn(&Target) -> bool, + mode: CompileMode, + ) -> CargoResult>> { + let is_glob = is_glob_pattern(target_name); + let proposals = if is_glob { + let pattern = build_glob(target_name)?; + let filter = |t: &Target| is_expected_kind(t) && pattern.matches(t.name()); + self.filter_targets(filter, true, mode) + } else { + let filter = |t: &Target| t.name() == target_name && is_expected_kind(t); + self.filter_targets(filter, true, mode) + }; + + if proposals.is_empty() { + let targets = self + .packages + .iter() + .flat_map(|pkg| { + pkg.targets() + .iter() + .filter(|target| is_expected_kind(target)) + }) + .collect::>(); + let suggestion = closest_msg(target_name, targets.iter(), |t| t.name()); + if !suggestion.is_empty() { + anyhow::bail!( + "no {} target {} `{}`{}", + target_desc, + if is_glob { "matches pattern" } else { "named" }, + target_name, + suggestion + ); + } else { + let mut msg = String::new(); + writeln!( + msg, + "no {} target {} `{}`.", + target_desc, + if is_glob { "matches pattern" } else { "named" }, + target_name, + )?; + if !targets.is_empty() { + writeln!(msg, "Available {} targets:", target_desc)?; + for target in targets { + writeln!(msg, " {}", target.name())?; + } + } + anyhow::bail!(msg); + } + } + Ok(proposals) + } + + /// Returns a list of proposed targets based on command-line target selection flags. + fn list_rule_targets( + &self, + rule: &FilterRule, + target_desc: &'static str, + is_expected_kind: fn(&Target) -> bool, + mode: CompileMode, + ) -> CargoResult>> { + let mut proposals = Vec::new(); + match rule { + FilterRule::All => proposals.extend(self.filter_targets(is_expected_kind, false, mode)), + FilterRule::Just(names) => { + for name in names { + proposals.extend(self.find_named_targets( + name, + target_desc, + is_expected_kind, + mode, + )?); + } + } + } + Ok(proposals) + } + + /// Create a list of proposed targets given the context in `TargetGenerator` + fn create_proposals(&self) -> CargoResult>> { + let mut proposals: Vec> = Vec::new(); + + match *self.filter { + CompileFilter::Default { + required_features_filterable, + } => { + for pkg in self.packages { + let default = self.filter_default_targets(pkg.targets()); + proposals.extend(default.into_iter().map(|target| Proposal { + pkg, + target, + requires_features: !required_features_filterable, + mode: self.mode, + })); + if self.mode == CompileMode::Test { + if let Some(t) = pkg + .targets() + .iter() + .find(|t| t.is_lib() && t.doctested() && t.doctestable()) + { + proposals.push(Proposal { + pkg, + target: t, + requires_features: false, + mode: CompileMode::Doctest, + }); + } + } + } + } + CompileFilter::Only { + all_targets, + ref lib, + ref bins, + ref examples, + ref tests, + ref benches, + } => { + if *lib != LibRule::False { + let mut libs = Vec::new(); + for proposal in self.filter_targets(Target::is_lib, false, self.mode) { + let Proposal { target, pkg, .. } = proposal; + if self.mode.is_doc_test() && !target.doctestable() { + let types = target.rustc_crate_types(); + let types_str: Vec<&str> = types.iter().map(|t| t.as_str()).collect(); + self.ws.config().shell().warn(format!( + "doc tests are not supported for crate type(s) `{}` in package `{}`", + types_str.join(", "), + pkg.name() + ))?; + } else { + libs.push(proposal) + } + } + if !all_targets && libs.is_empty() && *lib == LibRule::True { + let names = self + .packages + .iter() + .map(|pkg| pkg.name()) + .collect::>(); + if names.len() == 1 { + anyhow::bail!("no library targets found in package `{}`", names[0]); + } else { + anyhow::bail!( + "no library targets found in packages: {}", + names.join(", ") + ); + } + } + proposals.extend(libs); + } + + // If `--tests` was specified, add all targets that would be + // generated by `cargo test`. + let test_filter = match tests { + FilterRule::All => Target::tested, + FilterRule::Just(_) => Target::is_test, + }; + let test_mode = match self.mode { + CompileMode::Build => CompileMode::Test, + CompileMode::Check { .. } => CompileMode::Check { test: true }, + _ => self.mode, + }; + // If `--benches` was specified, add all targets that would be + // generated by `cargo bench`. + let bench_filter = match benches { + FilterRule::All => Target::benched, + FilterRule::Just(_) => Target::is_bench, + }; + let bench_mode = match self.mode { + CompileMode::Build => CompileMode::Bench, + CompileMode::Check { .. } => CompileMode::Check { test: true }, + _ => self.mode, + }; + + proposals.extend(self.list_rule_targets(bins, "bin", Target::is_bin, self.mode)?); + proposals.extend(self.list_rule_targets( + examples, + "example", + Target::is_example, + self.mode, + )?); + proposals.extend(self.list_rule_targets(tests, "test", test_filter, test_mode)?); + proposals.extend(self.list_rule_targets( + benches, + "bench", + bench_filter, + bench_mode, + )?); + } + } + + if self.mode.is_doc_scrape() { + self.add_docscrape_proposals(&mut proposals); + } + + Ok(proposals) + } + + /// Add additional targets from which to scrape examples for documentation + fn add_docscrape_proposals(&self, proposals: &mut Vec>) { + // In general, the goal is to scrape examples from (a) whatever targets + // the user is documenting, and (b) Example targets. However, if the user + // is documenting a library with dev-dependencies, those dev-deps are not + // needed for the library, while dev-deps are needed for the examples. + // + // If scrape-examples caused `cargo doc` to start requiring dev-deps, this + // would be a breaking change to crates whose dev-deps don't compile. + // Therefore we ONLY want to scrape Example targets if either: + // (1) No package has dev-dependencies, so this is a moot issue, OR + // (2) The provided CompileFilter requires dev-dependencies anyway. + // + // The next two variables represent these two conditions. + let no_pkg_has_dev_deps = self.packages.iter().all(|pkg| { + pkg.summary() + .dependencies() + .iter() + .all(|dep| !matches!(dep.kind(), DepKind::Development)) + }); + let reqs_dev_deps = matches!(self.has_dev_units, HasDevUnits::Yes); + let safe_to_scrape_example_targets = no_pkg_has_dev_deps || reqs_dev_deps; + + let proposed_targets: HashSet<&Target> = proposals.iter().map(|p| p.target).collect(); + let can_scrape = |target: &Target| { + let not_redundant = !proposed_targets.contains(target); + not_redundant + && match (target.doc_scrape_examples(), target.is_example()) { + // Targets configured by the user to not be scraped should never be scraped + (RustdocScrapeExamples::Disabled, _) => false, + // Targets configured by the user to be scraped should always be scraped + (RustdocScrapeExamples::Enabled, _) => true, + // Example targets with no configuration should be conditionally scraped if + // it's guaranteed not to break the build + (RustdocScrapeExamples::Unset, true) => safe_to_scrape_example_targets, + // All other targets are ignored for now. This may change in the future! + (RustdocScrapeExamples::Unset, false) => false, + } + }; + proposals.extend(self.filter_targets(can_scrape, false, CompileMode::Docscrape)); + } + + /// Checks if the unit list is empty and the user has passed any combination of + /// --tests, --examples, --benches or --bins, and we didn't match on any targets. + /// We want to emit a warning to make sure the user knows that this run is a no-op, + /// and their code remains unchecked despite cargo not returning any errors + fn unmatched_target_filters(&self, units: &[Unit]) -> CargoResult<()> { + let mut shell = self.ws.config().shell(); + if let CompileFilter::Only { + all_targets, + lib: _, + ref bins, + ref examples, + ref tests, + ref benches, + } = *self.filter + { + if units.is_empty() { + let mut filters = String::new(); + let mut miss_count = 0; + + let mut append = |t: &FilterRule, s| { + if let FilterRule::All = *t { + miss_count += 1; + filters.push_str(s); + } + }; + + if all_targets { + filters.push_str(" `all-targets`"); + } else { + append(bins, " `bins`,"); + append(tests, " `tests`,"); + append(examples, " `examples`,"); + append(benches, " `benches`,"); + filters.pop(); + } + + return shell.warn(format!( + "Target {}{} specified, but no targets matched. This is a no-op", + if miss_count > 1 { "filters" } else { "filter" }, + filters, + )); + } + } + + Ok(()) + } + + /// Warns if a target's required-features references a feature that doesn't exist. + /// + /// This is a warning because historically this was not validated, and it + /// would cause too much breakage to make it an error. + fn validate_required_features( + &self, + target_name: &str, + required_features: &[String], + summary: &Summary, + ) -> CargoResult<()> { + let resolve = match self.workspace_resolve { + None => return Ok(()), + Some(resolve) => resolve, + }; + + let mut shell = self.ws.config().shell(); + for feature in required_features { + let fv = FeatureValue::new(feature.into()); + match &fv { + FeatureValue::Feature(f) => { + if !summary.features().contains_key(f) { + shell.warn(format!( + "invalid feature `{}` in required-features of target `{}`: \ + `{}` is not present in [features] section", + fv, target_name, fv + ))?; + } + } + FeatureValue::Dep { .. } => { + anyhow::bail!( + "invalid feature `{}` in required-features of target `{}`: \ + `dep:` prefixed feature values are not allowed in required-features", + fv, + target_name + ); + } + FeatureValue::DepFeature { weak: true, .. } => { + anyhow::bail!( + "invalid feature `{}` in required-features of target `{}`: \ + optional dependency with `?` is not allowed in required-features", + fv, + target_name + ); + } + // Handling of dependent_crate/dependent_crate_feature syntax + FeatureValue::DepFeature { + dep_name, + dep_feature, + weak: false, + } => { + match resolve.deps(summary.package_id()).find(|(_dep_id, deps)| { + deps.iter().any(|dep| dep.name_in_toml() == *dep_name) + }) { + Some((dep_id, _deps)) => { + let dep_summary = resolve.summary(dep_id); + if !dep_summary.features().contains_key(dep_feature) + && !dep_summary.dependencies().iter().any(|dep| { + dep.name_in_toml() == *dep_feature && dep.is_optional() + }) + { + shell.warn(format!( + "invalid feature `{}` in required-features of target `{}`: \ + feature `{}` does not exist in package `{}`", + fv, target_name, dep_feature, dep_id + ))?; + } + } + None => { + shell.warn(format!( + "invalid feature `{}` in required-features of target `{}`: \ + dependency `{}` does not exist", + fv, target_name, dep_name + ))?; + } + } + } + } + } + Ok(()) + } + + /// Converts proposals to units based on each target's required features. + fn proposals_to_units(&self, proposals: Vec>) -> CargoResult> { + // Only include targets that are libraries or have all required + // features available. + // + // `features_map` is a map of &Package -> enabled_features + // It is computed by the set of enabled features for the package plus + // every enabled feature of every enabled dependency. + let mut features_map = HashMap::new(); + // This needs to be a set to de-duplicate units. Due to the way the + // targets are filtered, it is possible to have duplicate proposals for + // the same thing. + let mut units = HashSet::new(); + for Proposal { + pkg, + target, + requires_features, + mode, + } in proposals + { + let unavailable_features = match target.required_features() { + Some(rf) => { + self.validate_required_features(target.name(), rf, pkg.summary())?; + + let features = features_map.entry(pkg).or_insert_with(|| { + super::resolve_all_features( + self.resolve, + self.resolved_features, + self.package_set, + pkg.package_id(), + ) + }); + rf.iter().filter(|f| !features.contains(*f)).collect() + } + None => Vec::new(), + }; + if target.is_lib() || unavailable_features.is_empty() { + units.extend(self.new_units(pkg, target, mode)); + } else if requires_features { + let required_features = target.required_features().unwrap(); + let quoted_required_features: Vec = required_features + .iter() + .map(|s| format!("`{}`", s)) + .collect(); + anyhow::bail!( + "target `{}` in package `{}` requires the features: {}\n\ + Consider enabling them by passing, e.g., `--features=\"{}\"`", + target.name(), + pkg.name(), + quoted_required_features.join(", "), + required_features.join(" ") + ); + } + // else, silently skip target. + } + let mut units: Vec<_> = units.into_iter().collect(); + self.unmatched_target_filters(&units)?; + + // Keep the roots in a consistent order, which helps with checking test output. + units.sort_unstable(); + Ok(units) + } + + /// Generates all the base units for the packages the user has requested to + /// compile. Dependencies for these units are computed later in `unit_dependencies`. + pub fn generate_units(&self) -> CargoResult> { + let proposals = self.create_proposals()?; + self.proposals_to_units(proposals) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_generate_lockfile.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_generate_lockfile.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_generate_lockfile.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_generate_lockfile.rs 2023-01-10 13:38:26.000000000 +0000 @@ -36,25 +36,6 @@ } pub fn update_lockfile(ws: &Workspace<'_>, opts: &UpdateOptions<'_>) -> CargoResult<()> { - // Currently this is only a warning, but after a transition period this will become - // a hard error. - // See https://github.com/rust-lang/cargo/issues/10919#issuecomment-1214464756. - // We should declare the `precise` and `aggressive` arguments - // require the `package` argument in the clap. - if opts.aggressive && opts.to_update.is_empty() { - ws.config().shell().warn( - "aggressive is only supported with \"--package \", \ - this will become a hard error in a future release.", - )?; - } - - if opts.precise.is_some() && opts.to_update.is_empty() { - ws.config().shell().warn( - "precise is only supported with \"--package \", \ - this will become a hard error in a future release.", - )?; - } - if opts.aggressive && opts.precise.is_some() { anyhow::bail!("cannot specify both aggressive and precise simultaneously") } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_install.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_install.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_install.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_install.rs 2023-01-10 13:38:26.000000000 +0000 @@ -69,7 +69,7 @@ if name == "." { bail!( "To install the binaries for the package in current working \ - directory use `cargo install --path .`. \ + directory use `cargo install --path .`. \n\ Use `cargo build` if you want to simply build the package." ) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_new.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_new.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_new.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_new.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2,15 +2,16 @@ use crate::util::errors::CargoResult; use crate::util::{existing_vcs_repo, FossilRepo, GitRepo, HgRepo, PijulRepo}; use crate::util::{restricted_names, Config}; -use anyhow::Context as _; +use anyhow::{anyhow, Context as _}; use cargo_util::paths; use serde::de; use serde::Deserialize; use std::collections::BTreeMap; -use std::fmt; +use std::ffi::OsStr; use std::io::{BufRead, BufReader, ErrorKind}; use std::path::{Path, PathBuf}; use std::str::FromStr; +use std::{fmt, slice}; use toml_edit::easy as toml; #[derive(Clone, Copy, Debug, PartialEq)] @@ -261,6 +262,19 @@ Ok(()) } +/// Checks if the path contains any invalid PATH env characters. +fn check_path(path: &Path, shell: &mut Shell) -> CargoResult<()> { + // warn if the path contains characters that will break `env::join_paths` + if let Err(_) = paths::join_paths(slice::from_ref(&OsStr::new(path)), "") { + let path = path.to_string_lossy(); + shell.warn(format!( + "the path `{path}` contains invalid PATH characters (usually `:`, `;`, or `\"`)\n\ + It is recommended to use a different name to avoid problems." + ))?; + } + Ok(()) +} + fn detect_source_paths_and_types( package_path: &Path, package_name: &str, @@ -421,6 +435,8 @@ ) } + check_path(path, &mut config.shell())?; + let is_bin = opts.kind.is_bin(); let name = get_name(path, opts)?; @@ -458,6 +474,8 @@ anyhow::bail!("`cargo init` cannot be run on existing Cargo packages") } + check_path(path, &mut config.shell())?; + let name = get_name(path, opts)?; let mut src_paths_types = vec![]; @@ -595,9 +613,22 @@ /// already exists. It reads the contents of the given `BufRead` and /// checks if the contents of the ignore list are already existing in the /// file. - fn format_existing(&self, existing: T, vcs: VersionControl) -> String { - // TODO: is unwrap safe? - let existing_items = existing.lines().collect::, _>>().unwrap(); + fn format_existing(&self, existing: T, vcs: VersionControl) -> CargoResult { + let mut existing_items = Vec::new(); + for (i, item) in existing.lines().enumerate() { + match item { + Ok(s) => existing_items.push(s), + Err(err) => match err.kind() { + ErrorKind::InvalidData => { + return Err(anyhow!( + "Character at line {} is invalid. Cargo only supports UTF-8.", + i + )) + } + _ => return Err(anyhow!(err)), + }, + } + } let ignore_items = match vcs { VersionControl::Hg => &self.hg_ignore, @@ -631,7 +662,7 @@ out.push('\n'); } - out + Ok(out) } } @@ -660,7 +691,7 @@ Some(io_err) if io_err.kind() == ErrorKind::NotFound => list.format_new(vcs), _ => return Err(err), }, - Ok(file) => list.format_existing(BufReader::new(file), vcs), + Ok(file) => list.format_existing(BufReader::new(file), vcs)?, }; paths::append(&fp_ignore, ignore.as_bytes())?; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_package.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_package.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/cargo_package.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/cargo_package.rs 2023-01-10 13:38:26.000000000 +0000 @@ -14,7 +14,7 @@ use crate::sources::PathSource; use crate::util::errors::CargoResult; use crate::util::toml::TomlManifest; -use crate::util::{self, restricted_names, Config, FileLock}; +use crate::util::{self, human_readable_bytes, restricted_names, Config, FileLock}; use crate::{drop_println, ops}; use anyhow::Context as _; use cargo_util::paths; @@ -110,6 +110,8 @@ let ar_files = build_ar_list(ws, pkg, src_files, vcs_info)?; + let filecount = ar_files.len(); + if opts.list { for ar_file in ar_files { drop_println!(config, "{}", ar_file.rel_str); @@ -138,7 +140,7 @@ .shell() .status("Packaging", pkg.package_id().to_string())?; dst.file().set_len(0)?; - tar(ws, pkg, ar_files, dst.file(), &filename) + let uncompressed_size = tar(ws, pkg, ar_files, dst.file(), &filename) .with_context(|| "failed to prepare local package for uploading")?; if opts.verify { dst.seek(SeekFrom::Start(0))?; @@ -151,6 +153,22 @@ fs::rename(&src_path, &dst_path) .with_context(|| "failed to move temporary tarball into final location")?; + let dst_metadata = dst + .file() + .metadata() + .with_context(|| format!("could not learn metadata for: `{}`", dst_path.display()))?; + let compressed_size = dst_metadata.len(); + + let uncompressed = human_readable_bytes(uncompressed_size); + let compressed = human_readable_bytes(compressed_size); + + let message = format!( + "{} files, {:.1}{} ({:.1}{} compressed)", + filecount, uncompressed.0, uncompressed.1, compressed.0, compressed.1, + ); + // It doesn't really matter if this fails. + drop(config.shell().status("Packaged", message)); + return Ok(Some(dst)); } @@ -567,13 +585,16 @@ } } +/// Compresses and packages a list of [`ArchiveFile`]s and writes into the given file. +/// +/// Returns the uncompressed size of the contents of the new archive file. fn tar( ws: &Workspace<'_>, pkg: &Package, ar_files: Vec, dst: &File, filename: &str, -) -> CargoResult<()> { +) -> CargoResult { // Prepare the encoder and its header. let filename = Path::new(filename); let encoder = GzBuilder::new() @@ -586,6 +607,8 @@ let base_name = format!("{}-{}", pkg.name(), pkg.version()); let base_path = Path::new(&base_name); + + let mut uncompressed_size = 0; for ar_file in ar_files { let ArchiveFile { rel_path, @@ -611,6 +634,7 @@ .with_context(|| { format!("could not archive source file `{}`", disk_path.display()) })?; + uncompressed_size += metadata.len() as u64; } FileContents::Generated(generated_kind) => { let contents = match generated_kind { @@ -626,13 +650,14 @@ header.set_cksum(); ar.append_data(&mut header, &ar_path, contents.as_bytes()) .with_context(|| format!("could not archive source file `{}`", rel_str))?; + uncompressed_size += contents.len() as u64; } } } let encoder = ar.into_inner()?; encoder.finish()?; - Ok(()) + Ok(uncompressed_size) } /// Generate warnings when packaging Cargo.lock, and the resolve have changed. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/fix.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/fix.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/fix.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/fix.rs 2023-01-10 13:38:26.000000000 +0000 @@ -154,6 +154,7 @@ if let Ok(repo) = git2::Repository::discover(config.cwd()) { let mut repo_opts = git2::StatusOptions::new(); repo_opts.include_ignored(false); + repo_opts.include_untracked(true); for status in repo.statuses(Some(&mut repo_opts))?.iter() { if let Some(path) = status.path() { match status.status() { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -25,7 +25,7 @@ pub use self::registry::{configure_http_handle, http_handle, http_handle_and_timeout}; pub use self::registry::{modify_owners, yank, OwnersOptions, PublishOpts}; pub use self::registry::{needs_custom_http_transport, registry_login, registry_logout, search}; -pub use self::registry::{publish, registry_configuration, RegistryConfig}; +pub use self::registry::{publish, RegistryCredentialConfig}; pub use self::resolve::{ add_overrides, get_resolved_packages, resolve_with_previous, resolve_ws, resolve_ws_with_opts, WorkspaceResolve, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/registry/auth.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/registry/auth.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/registry/auth.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/registry/auth.rs 1970-01-01 00:00:00.000000000 +0000 @@ -1,237 +0,0 @@ -//! Registry authentication support. - -use crate::sources::CRATES_IO_REGISTRY; -use crate::util::{config, CargoResult, Config}; -use anyhow::{bail, format_err, Context as _}; -use cargo_util::ProcessError; -use std::io::{Read, Write}; -use std::path::PathBuf; -use std::process::{Command, Stdio}; - -use super::RegistryConfig; - -enum Action { - Get, - Store(String), - Erase, -} - -/// Returns the token to use for the given registry. -pub(super) fn auth_token( - config: &Config, - cli_token: Option<&str>, - credential: &RegistryConfig, - registry_name: Option<&str>, - api_url: &str, -) -> CargoResult { - let token = match (cli_token, credential) { - (None, RegistryConfig::None) => { - bail!("no upload token found, please run `cargo login` or pass `--token`"); - } - (Some(cli_token), _) => cli_token.to_string(), - (None, RegistryConfig::Token(config_token)) => config_token.to_string(), - (None, RegistryConfig::Process(process)) => { - let registry_name = registry_name.unwrap_or(CRATES_IO_REGISTRY); - run_command(config, process, registry_name, api_url, Action::Get)?.unwrap() - } - }; - Ok(token) -} - -/// Saves the given token. -pub(super) fn login( - config: &Config, - token: String, - credential_process: Option<&(PathBuf, Vec)>, - registry_name: Option<&str>, - api_url: &str, -) -> CargoResult<()> { - if let Some(process) = credential_process { - let registry_name = registry_name.unwrap_or(CRATES_IO_REGISTRY); - run_command( - config, - process, - registry_name, - api_url, - Action::Store(token), - )?; - } else { - config::save_credentials(config, Some(token), registry_name)?; - } - Ok(()) -} - -/// Removes the token for the given registry. -pub(super) fn logout( - config: &Config, - credential_process: Option<&(PathBuf, Vec)>, - registry_name: Option<&str>, - api_url: &str, -) -> CargoResult<()> { - if let Some(process) = credential_process { - let registry_name = registry_name.unwrap_or(CRATES_IO_REGISTRY); - run_command(config, process, registry_name, api_url, Action::Erase)?; - } else { - config::save_credentials(config, None, registry_name)?; - } - Ok(()) -} - -fn run_command( - config: &Config, - process: &(PathBuf, Vec), - name: &str, - api_url: &str, - action: Action, -) -> CargoResult> { - let cred_proc; - let (exe, args) = if process.0.to_str().unwrap_or("").starts_with("cargo:") { - cred_proc = sysroot_credential(config, process)?; - &cred_proc - } else { - process - }; - if !args.iter().any(|arg| arg.contains("{action}")) { - let msg = |which| { - format!( - "credential process `{}` cannot be used to {}, \ - the credential-process configuration value must pass the \ - `{{action}}` argument in the config to support this command", - exe.display(), - which - ) - }; - match action { - Action::Get => {} - Action::Store(_) => bail!(msg("log in")), - Action::Erase => bail!(msg("log out")), - } - } - let action_str = match action { - Action::Get => "get", - Action::Store(_) => "store", - Action::Erase => "erase", - }; - let args: Vec<_> = args - .iter() - .map(|arg| { - arg.replace("{action}", action_str) - .replace("{name}", name) - .replace("{api_url}", api_url) - }) - .collect(); - - let mut cmd = Command::new(&exe); - cmd.args(args) - .env("CARGO", config.cargo_exe()?) - .env("CARGO_REGISTRY_NAME", name) - .env("CARGO_REGISTRY_API_URL", api_url); - match action { - Action::Get => { - cmd.stdout(Stdio::piped()); - } - Action::Store(_) => { - cmd.stdin(Stdio::piped()); - } - Action::Erase => {} - } - let mut child = cmd.spawn().with_context(|| { - let verb = match action { - Action::Get => "fetch", - Action::Store(_) => "store", - Action::Erase => "erase", - }; - format!( - "failed to execute `{}` to {} authentication token for registry `{}`", - exe.display(), - verb, - name - ) - })?; - let mut token = None; - match &action { - Action::Get => { - let mut buffer = String::new(); - log::debug!("reading into buffer"); - child - .stdout - .as_mut() - .unwrap() - .read_to_string(&mut buffer) - .with_context(|| { - format!( - "failed to read token from registry credential process `{}`", - exe.display() - ) - })?; - if let Some(end) = buffer.find('\n') { - if buffer.len() > end + 1 { - bail!( - "credential process `{}` returned more than one line of output; \ - expected a single token", - exe.display() - ); - } - buffer.truncate(end); - } - token = Some(buffer); - } - Action::Store(token) => { - writeln!(child.stdin.as_ref().unwrap(), "{}", token).with_context(|| { - format!( - "failed to send token to registry credential process `{}`", - exe.display() - ) - })?; - } - Action::Erase => {} - } - let status = child.wait().with_context(|| { - format!( - "registry credential process `{}` exit failure", - exe.display() - ) - })?; - if !status.success() { - let msg = match action { - Action::Get => "failed to authenticate to registry", - Action::Store(_) => "failed to store token to registry", - Action::Erase => "failed to erase token from registry", - }; - return Err(ProcessError::new( - &format!( - "registry credential process `{}` {} `{}`", - exe.display(), - msg, - name - ), - Some(status), - None, - ) - .into()); - } - Ok(token) -} - -/// Gets the path to the libexec processes in the sysroot. -fn sysroot_credential( - config: &Config, - process: &(PathBuf, Vec), -) -> CargoResult<(PathBuf, Vec)> { - let cred_name = process.0.to_str().unwrap().strip_prefix("cargo:").unwrap(); - let cargo = config.cargo_exe()?; - let root = cargo - .parent() - .and_then(|p| p.parent()) - .ok_or_else(|| format_err!("expected cargo path {}", cargo.display()))?; - let exe = root.join("libexec").join(format!( - "cargo-credential-{}{}", - cred_name, - std::env::consts::EXE_SUFFIX - )); - let mut args = process.1.clone(); - if !args.iter().any(|arg| arg == "{action}") { - args.push("{action}".to_string()); - } - Ok((exe, args)) -} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/registry.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/registry.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/registry.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/registry.rs 2023-01-10 13:38:26.000000000 +0000 @@ -27,19 +27,18 @@ use crate::ops; use crate::ops::Packages; use crate::sources::{RegistrySource, SourceConfigMap, CRATES_IO_DOMAIN, CRATES_IO_REGISTRY}; -use crate::util::config::{self, Config, SslVersionConfig, SslVersionConfigRange}; +use crate::util::auth::{self, AuthorizationError}; +use crate::util::config::{Config, SslVersionConfig, SslVersionConfigRange}; use crate::util::errors::CargoResult; use crate::util::important_paths::find_root_manifest_for_wd; use crate::util::{truncate_with_ellipsis, IntoUrl}; use crate::{drop_print, drop_println, version}; -mod auth; - /// Registry settings loaded from config files. /// /// This is loaded based on the `--registry` flag and the config settings. #[derive(Debug)] -pub enum RegistryConfig { +pub enum RegistryCredentialConfig { None, /// The authentication token. Token(String), @@ -47,7 +46,7 @@ Process((PathBuf, Vec)), } -impl RegistryConfig { +impl RegistryCredentialConfig { /// Returns `true` if the credential is [`None`]. /// /// [`None`]: Self::None @@ -150,9 +149,9 @@ } } - let (mut registry, _reg_cfg, reg_ids) = registry( + let (mut registry, reg_ids) = registry( opts.config, - opts.token.clone(), + opts.token.as_deref(), opts.index.as_deref(), publish_registry.as_deref(), true, @@ -461,95 +460,36 @@ Ok(()) } -/// Returns the index and token from the config file for the given registry. -/// -/// `registry` is typically the registry specified on the command-line. If -/// `None`, `index` is set to `None` to indicate it should use crates.io. -pub fn registry_configuration( - config: &Config, - registry: Option<&str>, -) -> CargoResult { - let err_both = |token_key: &str, proc_key: &str| { - Err(format_err!( - "both `{token_key}` and `{proc_key}` \ - were specified in the config\n\ - Only one of these values may be set, remove one or the other to proceed.", - )) - }; - // `registry.default` is handled in command-line parsing. - let (token, process) = match registry { - Some("crates-io") | None => { - // Use crates.io default. - config.check_registry_index_not_set()?; - let token = config.get_string("registry.token")?.map(|p| p.val); - let process = if config.cli_unstable().credential_process { - let process = - config.get::>("registry.credential-process")?; - if token.is_some() && process.is_some() { - return err_both("registry.token", "registry.credential-process"); - } - process - } else { - None - }; - (token, process) - } - Some(registry) => { - let token_key = format!("registries.{registry}.token"); - let token = config.get_string(&token_key)?.map(|p| p.val); - let process = if config.cli_unstable().credential_process { - let mut proc_key = format!("registries.{registry}.credential-process"); - let mut process = config.get::>(&proc_key)?; - if process.is_none() && token.is_none() { - // This explicitly ignores the global credential-process if - // the token is set, as that is "more specific". - proc_key = String::from("registry.credential-process"); - process = config.get::>(&proc_key)?; - } else if process.is_some() && token.is_some() { - return err_both(&token_key, &proc_key); - } - process - } else { - None - }; - (token, process) - } - }; - - let credential_process = - process.map(|process| (process.path.resolve_program(config), process.args)); - - Ok(match (token, credential_process) { - (None, None) => RegistryConfig::None, - (None, Some(process)) => RegistryConfig::Process(process), - (Some(x), None) => RegistryConfig::Token(x), - (Some(_), Some(_)) => unreachable!("Only one of these values may be set."), - }) -} - /// Returns the `Registry` and `Source` based on command-line and config settings. /// -/// * `token`: The token from the command-line. If not set, uses the token +/// * `token_from_cmdline`: The token from the command-line. If not set, uses the token /// from the config. /// * `index`: The index URL from the command-line. /// * `registry`: The registry name from the command-line. If neither /// `registry`, or `index` are set, then uses `crates-io`. /// * `force_update`: If `true`, forces the index to be updated. -/// * `validate_token`: If `true`, the token must be set. +/// * `token_required`: If `true`, the token will be set. fn registry( config: &Config, - token: Option, + token_from_cmdline: Option<&str>, index: Option<&str>, registry: Option<&str>, force_update: bool, - validate_token: bool, -) -> CargoResult<(Registry, RegistryConfig, RegistrySourceIds)> { + token_required: bool, +) -> CargoResult<(Registry, RegistrySourceIds)> { let source_ids = get_source_id(config, index, registry)?; - let reg_cfg = registry_configuration(config, registry)?; - let api_host = { + + if token_required && index.is_some() && token_from_cmdline.is_none() { + bail!("command-line argument --index requires --token to be specified"); + } + if let Some(token) = token_from_cmdline { + auth::cache_token(config, &source_ids.original, token); + } + + let cfg = { let _lock = config.acquire_package_cache_lock()?; let mut src = RegistrySource::remote(source_ids.replacement, &HashSet::new(), config)?; - // Only update the index if the config is not available or `force` is set. + // Only update the index if `force_update` is set. if force_update { src.invalidate_cache() } @@ -561,28 +501,19 @@ Poll::Ready(cfg) => break cfg, } }; - - cfg.and_then(|cfg| cfg.api).ok_or_else(|| { - format_err!("{} does not support API commands", source_ids.replacement) - })? + cfg.expect("remote registries must have config") }; - let token = if validate_token { - if index.is_some() { - if token.is_none() { - bail!("command-line argument --index requires --token to be specified"); - } - token - } else { - let token = auth::auth_token(config, token.as_deref(), ®_cfg, registry, &api_host)?; - Some(token) - } + let api_host = cfg + .api + .ok_or_else(|| format_err!("{} does not support API commands", source_ids.replacement))?; + let token = if token_required || cfg.auth_required { + Some(auth::auth_token(config, &source_ids.original, None)?) } else { None }; let handle = http_handle(config)?; Ok(( - Registry::new_handle(api_host, token, handle), - reg_cfg, + Registry::new_handle(api_host, token, handle, cfg.auth_required), source_ids, )) } @@ -678,6 +609,24 @@ handle.ssl_min_max_version(min_version, max_version)?; } } + } else if cfg!(windows) { + // This is a temporary workaround for some bugs with libcurl and + // schannel and TLS 1.3. + // + // Our libcurl on Windows is usually built with schannel. + // On Windows 11 (or Windows Server 2022), libcurl recently (late + // 2022) gained support for TLS 1.3 with schannel, and it now defaults + // to 1.3. Unfortunately there have been some bugs with this. + // https://github.com/curl/curl/issues/9431 is the most recent. Once + // that has been fixed, and some time has passed where we can be more + // confident that the 1.3 support won't cause issues, this can be + // removed. + // + // Windows 10 is unaffected. libcurl does not support TLS 1.3 on + // Windows 10. (Windows 10 sorta had support, but it required enabling + // an advanced option in the registry which was buggy, and libcurl + // does runtime checks to prevent it.) + handle.ssl_min_max_version(SslVersion::Default, SslVersion::Tlsv12)?; } if let Some(true) = http.debug { @@ -789,22 +738,36 @@ } } -pub fn registry_login( - config: &Config, - token: Option, - reg: Option, -) -> CargoResult<()> { - let (registry, reg_cfg, _) = - registry(config, token.clone(), None, reg.as_deref(), false, false)?; +pub fn registry_login(config: &Config, token: Option<&str>, reg: Option<&str>) -> CargoResult<()> { + let source_ids = get_source_id(config, None, reg)?; + let reg_cfg = auth::registry_credential_config(config, &source_ids.original)?; + let login_url = match registry(config, token, None, reg, false, false) { + Ok((registry, _)) => Some(format!("{}/me", registry.host())), + Err(e) if e.is::() => e + .downcast::() + .unwrap() + .login_url + .map(|u| u.to_string()), + Err(e) => return Err(e), + }; let token = match token { - Some(token) => token, + Some(token) => token.to_string(), None => { - drop_println!( - config, - "please paste the API Token found on {}/me below", - registry.host() - ); + if let Some(login_url) = login_url { + drop_println!( + config, + "please paste the token found on {} below", + login_url + ) + } else { + drop_println!( + config, + "please paste the token for {} below", + source_ids.original.display_registry_name() + ) + } + let mut line = String::new(); let input = io::stdin(); input @@ -821,34 +784,26 @@ bail!("please provide a non-empty token"); } - if let RegistryConfig::Token(old_token) = ®_cfg { + if let RegistryCredentialConfig::Token(old_token) = ®_cfg { if old_token == &token { config.shell().status("Login", "already logged in")?; return Ok(()); } } - auth::login( - config, - token, - reg_cfg.as_process(), - reg.as_deref(), - registry.host(), - )?; + auth::login(config, &source_ids.original, token)?; config.shell().status( "Login", - format!( - "token for `{}` saved", - reg.as_ref().map_or(CRATES_IO_DOMAIN, String::as_str) - ), + format!("token for `{}` saved", reg.unwrap_or(CRATES_IO_DOMAIN)), )?; Ok(()) } -pub fn registry_logout(config: &Config, reg: Option) -> CargoResult<()> { - let (registry, reg_cfg, _) = registry(config, None, None, reg.as_deref(), false, false)?; - let reg_name = reg.as_deref().unwrap_or(CRATES_IO_DOMAIN); +pub fn registry_logout(config: &Config, reg: Option<&str>) -> CargoResult<()> { + let source_ids = get_source_id(config, None, reg)?; + let reg_cfg = auth::registry_credential_config(config, &source_ids.original)?; + let reg_name = source_ids.original.display_registry_name(); if reg_cfg.is_none() { config.shell().status( "Logout", @@ -856,12 +811,7 @@ )?; return Ok(()); } - auth::logout( - config, - reg_cfg.as_process(), - reg.as_deref(), - registry.host(), - )?; + auth::logout(config, &source_ids.original)?; config.shell().status( "Logout", format!( @@ -892,9 +842,9 @@ } }; - let (mut registry, _, _) = registry( + let (mut registry, _) = registry( config, - opts.token.clone(), + opts.token.as_deref(), opts.index.as_deref(), opts.registry.as_deref(), true, @@ -971,8 +921,14 @@ None => bail!("a version must be specified to yank"), }; - let (mut registry, _, _) = - registry(config, token, index.as_deref(), reg.as_deref(), true, true)?; + let (mut registry, _) = registry( + config, + token.as_deref(), + index.as_deref(), + reg.as_deref(), + true, + true, + )?; let package_spec = format!("{}@{}", name, version); if undo { @@ -1013,11 +969,8 @@ ) -> CargoResult { let sid = match (reg, index) { (None, None) => SourceId::crates_io(config)?, + (_, Some(i)) => SourceId::for_registry(&i.into_url()?)?, (Some(r), None) => SourceId::alt_registry(config, r)?, - (None, Some(i)) => SourceId::for_registry(&i.into_url()?)?, - (Some(_), Some(_)) => { - bail!("both `--index` and `--registry` should not be set at the same time") - } }; // Load source replacements that are built-in to Cargo. let builtin_replacement_sid = SourceConfigMap::empty(config)? @@ -1061,7 +1014,7 @@ limit: u32, reg: Option, ) -> CargoResult<()> { - let (mut registry, _, source_ids) = + let (mut registry, source_ids) = registry(config, None, index.as_deref(), reg.as_deref(), false, false)?; let (crates, total_crates) = registry.search(query, limit).with_context(|| { format!( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/tree/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/tree/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/ops/tree/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/ops/tree/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -213,7 +213,15 @@ }) .collect::>>()?; - print(ws.config(), opts, root_indexes, &pkgs_to_prune, &graph)?; + if root_indexes.len() == 0 { + ws.config().shell().warn( + "nothing to print.\n\n\ + To find dependencies that require specific target platforms, \ + try to use option `--target all` first, and then narrow your search scope accordingly.", + )?; + } else { + print(ws.config(), opts, root_indexes, &pkgs_to_prune, &graph)?; + } Ok(()) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/git/utils.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/git/utils.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/git/utils.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/git/utils.rs 2023-01-10 13:38:26.000000000 +0000 @@ -3,7 +3,7 @@ use crate::core::GitReference; use crate::util::errors::CargoResult; -use crate::util::{network, Config, IntoUrl, MetricsCounter, Progress}; +use crate::util::{human_readable_bytes, network, Config, IntoUrl, MetricsCounter, Progress}; use anyhow::{anyhow, Context as _}; use cargo_util::{paths, ProcessBuilder}; use curl::easy::List; @@ -774,13 +774,8 @@ counter.add(stats.received_bytes(), now); last_update = now; } - fn format_bytes(bytes: f32) -> (&'static str, f32) { - static UNITS: [&str; 5] = ["", "Ki", "Mi", "Gi", "Ti"]; - let i = (bytes.log2() / 10.0).min(4.0) as usize; - (UNITS[i], bytes / 1024_f32.powi(i as i32)) - } - let (unit, rate) = format_bytes(counter.rate()); - format!(", {:.2}{}B/s", rate, unit) + let (rate, unit) = human_readable_bytes(counter.rate() as u64); + format!(", {:.2}{}/s", rate, unit) }; progress .tick(stats.indexed_objects(), stats.total_objects(), &msg) @@ -831,6 +826,8 @@ // request we're about to issue. maybe_gc_repo(repo)?; + clean_repo_temp_files(repo); + // Translate the reference desired here into an actual list of refspecs // which need to get fetched. Additionally record if we're fetching tags. let mut refspecs = Vec::new(); @@ -1020,6 +1017,43 @@ reinitialize(repo) } +/// Removes temporary files left from previous activity. +/// +/// If libgit2 is interrupted while indexing pack files, it will leave behind +/// some temporary files that it doesn't clean up. These can be quite large in +/// size, so this tries to clean things up. +/// +/// This intentionally ignores errors. This is only an opportunistic cleaning, +/// and we don't really care if there are issues (there's unlikely anything +/// that can be done). +/// +/// The git CLI has similar behavior (its temp files look like +/// `objects/pack/tmp_pack_9kUSA8`). Those files are normally deleted via `git +/// prune` which is run by `git gc`. However, it doesn't know about libgit2's +/// filenames, so they never get cleaned up. +fn clean_repo_temp_files(repo: &git2::Repository) { + let path = repo.path().join("objects/pack/pack_git2_*"); + let pattern = match path.to_str() { + Some(p) => p, + None => { + log::warn!("cannot convert {path:?} to a string"); + return; + } + }; + let paths = match glob::glob(pattern) { + Ok(paths) => paths, + Err(_) => return, + }; + for path in paths { + if let Ok(path) = path { + match paths::remove_file(&path) { + Ok(_) => log::debug!("removed stale temp git file {path:?}"), + Err(e) => log::warn!("failed to remove {path:?} while cleaning temp files: {e}"), + } + } + } +} + fn reinitialize(repo: &mut git2::Repository) -> CargoResult<()> { // Here we want to drop the current repository object pointed to by `repo`, // so we initialize temporary repository in a sub-folder, blow away the diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/download.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/download.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/download.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/download.rs 2023-01-10 13:38:26.000000000 +0000 @@ -8,6 +8,7 @@ RegistryConfig, CHECKSUM_TEMPLATE, CRATE_TEMPLATE, LOWER_PREFIX_TEMPLATE, PREFIX_TEMPLATE, VERSION_TEMPLATE, }; +use crate::util::auth; use crate::util::errors::CargoResult; use crate::util::{Config, Filesystem}; use std::fmt::Write as FmtWrite; @@ -69,9 +70,16 @@ .replace(CHECKSUM_TEMPLATE, checksum); } + let authorization = if registry_config.auth_required { + Some(auth::auth_token(config, &pkg.source_id(), None)?) + } else { + None + }; + Ok(MaybeLock::Download { url, descriptor: pkg.to_string(), + authorization: authorization, }) } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/http_remote.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/http_remote.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/http_remote.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/http_remote.rs 2023-01-10 13:38:26.000000000 +0000 @@ -3,13 +3,13 @@ //! See [`HttpRegistry`] for details. use crate::core::{PackageId, SourceId}; -use crate::ops; +use crate::ops::{self}; use crate::sources::registry::download; use crate::sources::registry::MaybeLock; use crate::sources::registry::{LoadResponse, RegistryConfig, RegistryData}; use crate::util::errors::{CargoResult, HttpNotSuccessful}; use crate::util::network::Retry; -use crate::util::{internal, Config, Filesystem, Progress, ProgressStyle}; +use crate::util::{auth, Config, Filesystem, IntoUrl, Progress, ProgressStyle}; use anyhow::Context; use cargo_util::paths; use curl::easy::{HttpVersion, List}; @@ -18,14 +18,20 @@ use std::cell::RefCell; use std::collections::{HashMap, HashSet}; use std::fs::{self, File}; +use std::io::ErrorKind; use std::path::{Path, PathBuf}; use std::str; use std::task::{ready, Poll}; use std::time::Duration; use url::Url; -const ETAG: &'static str = "ETag"; -const LAST_MODIFIED: &'static str = "Last-Modified"; +// HTTP headers +const ETAG: &'static str = "etag"; +const LAST_MODIFIED: &'static str = "last-modified"; +const WWW_AUTHENTICATE: &'static str = "www-authenticate"; +const IF_NONE_MATCH: &'static str = "if-none-match"; +const IF_MODIFIED_SINCE: &'static str = "if-modified-since"; + const UNKNOWN: &'static str = "Unknown"; /// A registry served by the HTTP-based registry API. @@ -77,6 +83,12 @@ /// Cached registry configuration. registry_config: Option, + + /// Should we include the authorization header? + auth_required: bool, + + /// Url to get a token for the registry. + login_url: Option, } /// Helper for downloading crates. @@ -112,17 +124,31 @@ /// Actual downloaded data, updated throughout the lifetime of this download. data: RefCell>, - /// ETag or Last-Modified header received from the server (if any). - index_version: RefCell>, + /// HTTP headers. + header_map: RefCell, /// Logic used to track retrying this download if it's a spurious failure. retry: Retry<'cfg>, } +#[derive(Default)] +struct Headers { + last_modified: Option, + etag: Option, + www_authenticate: Vec, +} + +enum StatusCode { + Success, + NotModified, + NotFound, + Unauthorized, +} + struct CompletedDownload { - response_code: u32, + response_code: StatusCode, data: Vec, - index_version: String, + header_map: Headers, } impl<'cfg> HttpRegistry<'cfg> { @@ -137,15 +163,21 @@ let url = source_id.url().as_str(); // Ensure the url ends with a slash so we can concatenate paths. if !url.ends_with('/') { - anyhow::bail!("sparse registry url must end in a slash `/`: sparse+{url}") + anyhow::bail!("sparse registry url must end in a slash `/`: {url}") } + assert!(source_id.is_sparse()); + let url = url + .strip_prefix("sparse+") + .expect("sparse registry needs sparse+ prefix") + .into_url() + .expect("a url with the sparse+ stripped should still be valid"); Ok(HttpRegistry { index_path: config.registry_index_path().join(name), cache_path: config.registry_cache_path().join(name), source_id, config, - url: source_id.url().to_owned(), + url, multi: Multi::new(), multiplexing: false, downloads: Downloads { @@ -165,6 +197,8 @@ requested_update: false, fetch_started: false, registry_config: None, + auth_required: false, + login_url: None, }) } @@ -235,24 +269,27 @@ result.with_context(|| format!("failed to download from `{}`", url))?; let code = handle.response_code()?; // Keep this list of expected status codes in sync with the codes handled in `load` - if !matches!(code, 200 | 304 | 410 | 404 | 451) { - let url = handle.effective_url()?.unwrap_or(&url); - return Err(HttpNotSuccessful { - code, - url: url.to_owned(), - body: data, + let code = match code { + 200 => StatusCode::Success, + 304 => StatusCode::NotModified, + 401 => StatusCode::Unauthorized, + 404 | 410 | 451 => StatusCode::NotFound, + code => { + let url = handle.effective_url()?.unwrap_or(&url); + return Err(HttpNotSuccessful { + code, + url: url.to_owned(), + body: data, + } + .into()); } - .into()); - } - Ok(data) + }; + Ok((data, code)) }) { - Ok(Some(data)) => Ok(CompletedDownload { - response_code: handle.response_code()?, + Ok(Some((data, code))) => Ok(CompletedDownload { + response_code: code, data, - index_version: download - .index_version - .take() - .unwrap_or_else(|| UNKNOWN.to_string()), + header_map: download.header_map.take(), }), Ok(None) => { // retry the operation @@ -299,6 +336,69 @@ false } } + + fn check_registry_auth_unstable(&self) -> CargoResult<()> { + if self.auth_required && !self.config.cli_unstable().registry_auth { + anyhow::bail!("authenticated registries require `-Z registry-auth`"); + } + Ok(()) + } + + /// Get the cached registry configuration, if it exists. + fn config_cached(&mut self) -> CargoResult> { + if self.registry_config.is_some() { + return Ok(self.registry_config.as_ref()); + } + let config_json_path = self + .assert_index_locked(&self.index_path) + .join("config.json"); + match fs::read(&config_json_path) { + Ok(raw_data) => match serde_json::from_slice(&raw_data) { + Ok(json) => { + self.registry_config = Some(json); + } + Err(e) => log::debug!("failed to decode cached config.json: {}", e), + }, + Err(e) => { + if e.kind() != ErrorKind::NotFound { + log::debug!("failed to read config.json cache: {}", e) + } + } + } + Ok(self.registry_config.as_ref()) + } + + /// Get the registry configuration. + fn config(&mut self) -> Poll> { + debug!("loading config"); + let index_path = self.assert_index_locked(&self.index_path); + let config_json_path = index_path.join("config.json"); + if self.is_fresh(Path::new("config.json")) && self.config_cached()?.is_some() { + return Poll::Ready(Ok(self.registry_config.as_ref().unwrap())); + } + + match ready!(self.load(Path::new(""), Path::new("config.json"), None)?) { + LoadResponse::Data { + raw_data, + index_version: _, + } => { + trace!("config loaded"); + self.registry_config = Some(serde_json::from_slice(&raw_data)?); + if paths::create_dir_all(&config_json_path.parent().unwrap()).is_ok() { + if let Err(e) = fs::write(&config_json_path, &raw_data) { + log::debug!("failed to write config.json cache: {}", e); + } + } + Poll::Ready(Ok(self.registry_config.as_ref().unwrap())) + } + LoadResponse::NotFound => { + Poll::Ready(Err(anyhow::anyhow!("config.json not found in registry"))) + } + LoadResponse::CacheValid => Poll::Ready(Err(crate::util::internal( + "config.json is never stored in the index cache", + ))), + } + } } impl<'cfg> RegistryData for HttpRegistry<'cfg> { @@ -340,30 +440,42 @@ return Poll::Ready(Ok(LoadResponse::CacheValid)); } } else if self.fresh.contains(path) { + // We have no cached copy of this file, and we already downloaded it. debug!( "cache did not contain previously downloaded file {}", path.display() ); + return Poll::Ready(Ok(LoadResponse::NotFound)); } if let Some(result) = self.downloads.results.remove(path) { let result = result.with_context(|| format!("download of {} failed", path.display()))?; - debug!( - "index file downloaded with status code {}", - result.response_code - ); - trace!("index file version: {}", result.index_version); - if !self.fresh.insert(path.to_path_buf()) { - debug!("downloaded the index file `{}` twice", path.display()) - } + assert!( + self.fresh.insert(path.to_path_buf()), + "downloaded the index file `{}` twice", + path.display() + ); // The status handled here need to be kept in sync with the codes handled // in `handle_completed_downloads` match result.response_code { - 200 => {} - 304 => { + StatusCode::Success => { + let response_index_version = if let Some(etag) = result.header_map.etag { + format!("{}: {}", ETAG, etag) + } else if let Some(lm) = result.header_map.last_modified { + format!("{}: {}", LAST_MODIFIED, lm) + } else { + UNKNOWN.to_string() + }; + trace!("index file version: {}", response_index_version); + return Poll::Ready(Ok(LoadResponse::Data { + raw_data: result.data, + index_version: Some(response_index_version), + })); + } + StatusCode::NotModified => { // Not Modified: the data in the cache is still the latest. if index_version.is_none() { return Poll::Ready(Err(anyhow::anyhow!( @@ -372,29 +484,70 @@ } return Poll::Ready(Ok(LoadResponse::CacheValid)); } - 404 | 410 | 451 => { + StatusCode::NotFound => { // The crate was not found or deleted from the registry. return Poll::Ready(Ok(LoadResponse::NotFound)); } - code => { - return Err(internal(format!("unexpected HTTP status code {code}"))).into(); + StatusCode::Unauthorized + if !self.auth_required && path == Path::new("config.json") => + { + debug!("re-attempting request for config.json with authorization included."); + self.fresh.remove(path); + self.auth_required = true; + + // Look for a `www-authenticate` header with the `Cargo` scheme. + for header in &result.header_map.www_authenticate { + for challenge in http_auth::ChallengeParser::new(header) { + match challenge { + Ok(challenge) if challenge.scheme.eq_ignore_ascii_case("Cargo") => { + // Look for the `login_url` parameter. + for (param, value) in challenge.params { + if param.eq_ignore_ascii_case("login_url") { + self.login_url = Some(value.to_unescaped().into_url()?); + } + } + } + Ok(challenge) => { + debug!("ignoring non-Cargo challenge: {}", challenge.scheme) + } + Err(e) => debug!("failed to parse challenge: {}", e), + } + } + } + } + StatusCode::Unauthorized => { + let err = Err(HttpNotSuccessful { + code: 401, + body: result.data, + url: self.full_url(path), + } + .into()); + if self.auth_required { + return Poll::Ready(err.context(auth::AuthorizationError { + sid: self.source_id.clone(), + login_url: self.login_url.clone(), + reason: auth::AuthorizationErrorReason::TokenRejected, + })); + } else { + return Poll::Ready(err); + } } } + } - return Poll::Ready(Ok(LoadResponse::Data { - raw_data: result.data, - index_version: Some(result.index_version), - })); + if path != Path::new("config.json") { + self.auth_required = ready!(self.config()?).auth_required; + } else if !self.auth_required { + // Check if there's a cached config that says auth is required. + // This allows avoiding the initial unauthenticated request to probe. + if let Some(config) = self.config_cached()? { + self.auth_required = config.auth_required; + } } // Looks like we're going to have to do a network request. self.start_fetch()?; - // Load the registry config. - if self.registry_config.is_none() && path != Path::new("config.json") { - ready!(self.config()?); - } - let mut handle = ops::http_handle(self.config)?; let full_url = self.full_url(path); debug!("fetch {}", full_url); @@ -418,19 +571,31 @@ // reduces the number of connections done to a more manageable state. handle.pipewait(true)?; - // Make sure we don't send data back if it's the same as we have in the index. let mut headers = List::new(); + // Include a header to identify the protocol. This allows the server to + // know that Cargo is attempting to use the sparse protocol. + headers.append("cargo-protocol: version=1")?; + headers.append("accept: text/plain")?; + + // If we have a cached copy of the file, include IF_NONE_MATCH or IF_MODIFIED_SINCE header. if let Some(index_version) = index_version { if let Some((key, value)) = index_version.split_once(':') { match key { - ETAG => headers.append(&format!("If-None-Match: {}", value.trim()))?, + ETAG => headers.append(&format!("{}: {}", IF_NONE_MATCH, value.trim()))?, LAST_MODIFIED => { - headers.append(&format!("If-Modified-Since: {}", value.trim()))? + headers.append(&format!("{}: {}", IF_MODIFIED_SINCE, value.trim()))? } _ => debug!("unexpected index version: {}", index_version), } } } + if self.auth_required { + self.check_registry_auth_unstable()?; + let authorization = + auth::auth_token(self.config, &self.source_id, self.login_url.as_ref())?; + headers.append(&format!("Authorization: {}", authorization))?; + trace!("including authorization for {}", full_url); + } handle.http_headers(headers)?; // We're going to have a bunch of downloads all happening "at the same time". @@ -465,21 +630,17 @@ // And ditto for the header function. handle.header_function(move |buf| { if let Some((tag, value)) = Self::handle_http_header(buf) { - let is_etag = tag.eq_ignore_ascii_case(ETAG); - let is_lm = tag.eq_ignore_ascii_case(LAST_MODIFIED); - if is_etag || is_lm { - tls::with(|downloads| { - if let Some(downloads) = downloads { - let mut index_version = - downloads.pending[&token].0.index_version.borrow_mut(); - if is_etag { - *index_version = Some(format!("{}: {}", ETAG, value)); - } else if index_version.is_none() && is_lm { - *index_version = Some(format!("{}: {}", LAST_MODIFIED, value)); - }; + tls::with(|downloads| { + if let Some(downloads) = downloads { + let mut header_map = downloads.pending[&token].0.header_map.borrow_mut(); + match tag.to_ascii_lowercase().as_str() { + LAST_MODIFIED => header_map.last_modified = Some(value.to_string()), + ETAG => header_map.etag = Some(value.to_string()), + WWW_AUTHENTICATE => header_map.www_authenticate.push(value.to_string()), + _ => {} } - }) - } + } + }); } true @@ -487,9 +648,9 @@ let dl = Download { token, - data: RefCell::new(Vec::new()), path: path.to_path_buf(), - index_version: RefCell::new(None), + data: RefCell::new(Vec::new()), + header_map: Default::default(), retry: Retry::new(self.config)?, }; @@ -502,46 +663,9 @@ } fn config(&mut self) -> Poll>> { - if self.registry_config.is_some() { - return Poll::Ready(Ok(self.registry_config.clone())); - } - debug!("loading config"); - let index_path = self.config.assert_package_cache_locked(&self.index_path); - let config_json_path = index_path.join("config.json"); - if self.is_fresh(Path::new("config.json")) { - match fs::read(&config_json_path) { - Ok(raw_data) => match serde_json::from_slice(&raw_data) { - Ok(json) => { - self.registry_config = Some(json); - return Poll::Ready(Ok(self.registry_config.clone())); - } - Err(e) => log::debug!("failed to decode cached config.json: {}", e), - }, - Err(e) => log::debug!("failed to read config.json cache: {}", e), - } - } - - match ready!(self.load(Path::new(""), Path::new("config.json"), None)?) { - LoadResponse::Data { - raw_data, - index_version: _, - } => { - trace!("config loaded"); - self.registry_config = Some(serde_json::from_slice(&raw_data)?); - if paths::create_dir_all(&config_json_path.parent().unwrap()).is_ok() { - if let Err(e) = fs::write(&config_json_path, &raw_data) { - log::debug!("failed to write config.json cache: {}", e); - } - } - Poll::Ready(Ok(self.registry_config.clone())) - } - LoadResponse::NotFound => { - Poll::Ready(Err(anyhow::anyhow!("config.json not found in registry"))) - } - LoadResponse::CacheValid => { - panic!("config.json is not stored in the index cache") - } - } + let cfg = ready!(self.config()?).clone(); + self.check_registry_auth_unstable()?; + Poll::Ready(Ok(Some(cfg))) } fn invalidate_cache(&mut self) { @@ -549,6 +673,7 @@ // All it does is ensure that a subsequent load will double-check files with the // server rather than rely on a locally cached copy of the index files. debug!("invalidated index cache"); + self.fresh.clear(); self.requested_update = true; } @@ -556,7 +681,7 @@ let registry_config = loop { match self.config()? { Poll::Pending => self.block_until_ready()?, - Poll::Ready(cfg) => break cfg.unwrap(), + Poll::Ready(cfg) => break cfg.to_owned(), } }; download::download( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -188,7 +188,7 @@ const PACKAGE_SOURCE_LOCK: &str = ".cargo-ok"; pub const CRATES_IO_INDEX: &str = "https://github.com/rust-lang/crates.io-index"; -pub const CRATES_IO_HTTP_INDEX: &str = "https://index.crates.io/"; +pub const CRATES_IO_HTTP_INDEX: &str = "sparse+https://index.crates.io/"; pub const CRATES_IO_REGISTRY: &str = "crates-io"; pub const CRATES_IO_DOMAIN: &str = "crates.io"; const CRATE_TEMPLATE: &str = "{crate}"; @@ -197,6 +197,7 @@ const LOWER_PREFIX_TEMPLATE: &str = "{lowerprefix}"; const CHECKSUM_TEMPLATE: &str = "{sha256-checksum}"; const MAX_UNPACK_SIZE: u64 = 512 * 1024 * 1024; +const MAX_COMPRESSION_RATIO: usize = 20; // 20:1 /// A "source" for a local (see `local::LocalRegistry`) or remote (see /// `remote::RemoteRegistry`) registry. @@ -250,6 +251,10 @@ /// operations like yanks, owner modifications, publish new crates, etc. /// If this is None, the registry does not support API commands. pub api: Option, + + /// Whether all operations require authentication. + #[serde(default)] + pub auth_required: bool, } /// The maximum version of the `v` field in the index this version of cargo @@ -417,6 +422,7 @@ } } +/// Result from loading data from a registry. pub enum LoadResponse { /// The cache is valid. The cached data should be used. CacheValid, @@ -527,7 +533,11 @@ /// /// `descriptor` is just a text string to display to the user of what is /// being downloaded. - Download { url: String, descriptor: String }, + Download { + url: String, + descriptor: String, + authorization: Option, + }, } mod download; @@ -548,6 +558,7 @@ yanked_whitelist: &HashSet, config: &'cfg Config, ) -> CargoResult> { + assert!(source_id.is_remote_registry()); let name = short_name(source_id); let ops = if source_id.is_sparse() { Box::new(http_remote::HttpRegistry::new(source_id, config, &name)?) as Box<_> @@ -617,9 +628,12 @@ return Ok(unpack_dir.to_path_buf()); } } - let gz = GzDecoder::new(tarball); - let gz = LimitErrorReader::new(gz, max_unpack_size()); - let mut tar = Archive::new(gz); + let mut tar = { + let size_limit = max_unpack_size(tarball.metadata()?.len()); + let gz = GzDecoder::new(tarball); + let gz = LimitErrorReader::new(gz, size_limit); + Archive::new(gz) + }; let prefix = unpack_dir.file_name().unwrap(); let parent = unpack_dir.parent().unwrap(); for entry in tar.entries()? { @@ -782,9 +796,15 @@ }; match self.ops.download(package, hash)? { MaybeLock::Ready(file) => self.get_pkg(package, &file).map(MaybePackage::Ready), - MaybeLock::Download { url, descriptor } => { - Ok(MaybePackage::Download { url, descriptor }) - } + MaybeLock::Download { + url, + descriptor, + authorization, + } => Ok(MaybePackage::Download { + url, + descriptor, + authorization, + }), } } @@ -835,18 +855,47 @@ } } -/// For integration test only. -#[inline] -fn max_unpack_size() -> u64 { - const VAR: &str = "__CARGO_TEST_MAX_UNPACK_SIZE"; - if cfg!(debug_assertions) && std::env::var(VAR).is_ok() { - std::env::var(VAR) +/// Get the maximum upack size that Cargo permits +/// based on a given `size of your compressed file. +/// +/// Returns the larger one between `size * max compression ratio` +/// and a fixed max unpacked size. +/// +/// In reality, the compression ratio usually falls in the range of 2:1 to 10:1. +/// We choose 20:1 to cover almost all possible cases hopefully. +/// Any ratio higher than this is considered as a zip bomb. +/// +/// In the future we might want to introduce a configurable size. +/// +/// Some of the real world data from common compression algorithms: +/// +/// * +/// * +/// * +/// * +fn max_unpack_size(size: u64) -> u64 { + const SIZE_VAR: &str = "__CARGO_TEST_MAX_UNPACK_SIZE"; + const RATIO_VAR: &str = "__CARGO_TEST_MAX_UNPACK_RATIO"; + let max_unpack_size = if cfg!(debug_assertions) && std::env::var(SIZE_VAR).is_ok() { + // For integration test only. + std::env::var(SIZE_VAR) .unwrap() .parse() .expect("a max unpack size in bytes") } else { MAX_UNPACK_SIZE - } + }; + let max_compression_ratio = if cfg!(debug_assertions) && std::env::var(RATIO_VAR).is_ok() { + // For integration test only. + std::env::var(RATIO_VAR) + .unwrap() + .parse() + .expect("a max compresssion ratio in bytes") + } else { + MAX_COMPRESSION_RATIO + }; + + u64::max(max_unpack_size, size * max_compression_ratio as u64) } fn make_dep_prefix(name: &str) -> String { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/remote.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/remote.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/sources/registry/remote.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/sources/registry/remote.rs 2023-01-10 13:38:26.000000000 +0000 @@ -245,7 +245,13 @@ match ready!(self.load(Path::new(""), Path::new("config.json"), None)?) { LoadResponse::Data { raw_data, .. } => { trace!("config loaded"); - Poll::Ready(Ok(Some(serde_json::from_slice(&raw_data)?))) + let cfg: RegistryConfig = serde_json::from_slice(&raw_data)?; + if cfg.auth_required && !self.config.cli_unstable().registry_auth { + return Poll::Ready(Err(anyhow::anyhow!( + "authenticated registries require `-Z registry-auth`" + ))); + } + Poll::Ready(Ok(Some(cfg))) } _ => Poll::Ready(Ok(None)), } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/auth.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/auth.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/auth.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/auth.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,489 @@ +//! Registry authentication support. + +use crate::util::{config, config::ConfigKey, CanonicalUrl, CargoResult, Config, IntoUrl}; +use anyhow::{bail, format_err, Context as _}; +use cargo_util::ProcessError; +use core::fmt; +use serde::Deserialize; +use std::collections::HashMap; +use std::error::Error; +use std::io::{Read, Write}; +use std::path::PathBuf; +use std::process::{Command, Stdio}; +use url::Url; + +use crate::core::SourceId; +use crate::ops::RegistryCredentialConfig; + +/// Get the credential configuration for a `SourceId`. +pub fn registry_credential_config( + config: &Config, + sid: &SourceId, +) -> CargoResult { + #[derive(Deserialize)] + #[serde(rename_all = "kebab-case")] + struct RegistryConfig { + index: Option, + token: Option, + credential_process: Option, + #[serde(rename = "default")] + _default: Option, + } + + log::trace!("loading credential config for {}", sid); + config.load_credentials()?; + if !sid.is_remote_registry() { + bail!( + "{} does not support API commands.\n\ + Check for a source-replacement in .cargo/config.", + sid + ); + } + + // Handle crates.io specially, since it uses different configuration keys. + if sid.is_crates_io() { + config.check_registry_index_not_set()?; + let RegistryConfig { + token, + credential_process, + .. + } = config.get::("registry")?; + let credential_process = + credential_process.filter(|_| config.cli_unstable().credential_process); + + return Ok(match (token, credential_process) { + (Some(_), Some(_)) => { + return Err(format_err!( + "both `token` and `credential-process` \ + were specified in the config`.\n\ + Only one of these values may be set, remove one or the other to proceed.", + )) + } + (Some(token), _) => RegistryCredentialConfig::Token(token), + (_, Some(process)) => RegistryCredentialConfig::Process(( + process.path.resolve_program(config), + process.args, + )), + (None, None) => RegistryCredentialConfig::None, + }); + } + + // Find the SourceId's name by its index URL. If environment variables + // are available they will be preferred over configuration values. + // + // The fundimental problem is that we only know the index url of the registry + // for certain. For example, an unnamed registry source can come from the `--index` + // command line argument, or from a Cargo.lock file. For this reason, we always + // attempt to discover the name by looking it up by the index URL. + // + // This also allows the authorization token for a registry to be set + // without knowing the registry name by using the _INDEX and _TOKEN + // environment variables. + let name = { + // Discover names from environment variables. + let index = sid.canonical_url(); + let mut names: Vec<_> = config + .env() + .iter() + .filter_map(|(k, v)| { + Some(( + k.strip_prefix("CARGO_REGISTRIES_")? + .strip_suffix("_INDEX")?, + v, + )) + }) + .filter_map(|(k, v)| Some((k, CanonicalUrl::new(&v.into_url().ok()?).ok()?))) + .filter(|(_, v)| v == index) + .map(|(k, _)| k.to_lowercase()) + .collect(); + + // Discover names from the configuration only if none were found in the environment. + if names.len() == 0 { + names = config + .get::>("registries")? + .iter() + .filter_map(|(k, v)| Some((k, v.index.as_deref()?))) + .filter_map(|(k, v)| Some((k, CanonicalUrl::new(&v.into_url().ok()?).ok()?))) + .filter(|(_, v)| v == index) + .map(|(k, _)| k.to_string()) + .collect(); + } + names.sort(); + match names.len() { + 0 => None, + 1 => Some(std::mem::take(&mut names[0])), + _ => anyhow::bail!( + "multiple registries are configured with the same index url '{}': {}", + &sid.as_url(), + names.join(", ") + ), + } + }; + + // It's possible to have a registry configured in a Cargo config file, + // then override it with configuration from environment variables. + // If the name doesn't match, leave a note to help the user understand + // the potentially confusing situation. + if let Some(name) = name.as_deref() { + if Some(name) != sid.alt_registry_key() { + config.shell().note(format!( + "name of alternative registry `{}` set to `{name}`", + sid.url() + ))? + } + } + + let (token, credential_process) = if let Some(name) = &name { + log::debug!("found alternative registry name `{name}` for {sid}"); + let RegistryConfig { + token, + credential_process, + .. + } = config.get::(&format!("registries.{name}"))?; + let credential_process = + credential_process.filter(|_| config.cli_unstable().credential_process); + (token, credential_process) + } else { + log::debug!("no registry name found for {sid}"); + (None, None) + }; + + let name = name.as_deref(); + Ok(match (token, credential_process) { + (Some(_), Some(_)) => { + return { + Err(format_err!( + "both `token` and `credential-process` \ + were specified in the config for registry `{name}`.\n\ + Only one of these values may be set, remove one or the other to proceed.", + name = name.unwrap() + )) + } + } + (Some(token), _) => RegistryCredentialConfig::Token(token), + (_, Some(process)) => { + RegistryCredentialConfig::Process((process.path.resolve_program(config), process.args)) + } + (None, None) => { + // If we couldn't find a registry-specific credential, try the global credential process. + if let Some(process) = config + .get::>("registry.credential-process")? + .filter(|_| config.cli_unstable().credential_process) + { + RegistryCredentialConfig::Process(( + process.path.resolve_program(config), + process.args, + )) + } else { + RegistryCredentialConfig::None + } + } + }) +} + +#[derive(Debug, PartialEq)] +pub enum AuthorizationErrorReason { + TokenMissing, + TokenRejected, +} + +impl fmt::Display for AuthorizationErrorReason { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + AuthorizationErrorReason::TokenMissing => write!(f, "no token found"), + AuthorizationErrorReason::TokenRejected => write!(f, "token rejected"), + } + } +} + +/// An authorization error from accessing a registry. +#[derive(Debug)] +pub struct AuthorizationError { + /// Url that was attempted + pub sid: SourceId, + /// Url where the user could log in. + pub login_url: Option, + /// Specific reason indicating what failed + pub reason: AuthorizationErrorReason, +} +impl Error for AuthorizationError {} +impl fmt::Display for AuthorizationError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + if self.sid.is_crates_io() { + write!( + f, + "{}, please run `cargo login`\nor use environment variable CARGO_REGISTRY_TOKEN", + self.reason + ) + } else if let Some(name) = self.sid.alt_registry_key() { + let key = ConfigKey::from_str(&format!("registries.{name}.token")); + write!( + f, + "{} for `{}`, please run `cargo login --registry {name}`\nor use environment variable {}", + self.reason, + self.sid.display_registry_name(), + key.as_env_key(), + ) + } else if self.reason == AuthorizationErrorReason::TokenMissing { + write!( + f, + r#"{} for `{}` +consider setting up an alternate registry in Cargo's configuration +as described by https://doc.rust-lang.org/cargo/reference/registries.html + +[registries] +my-registry = {{ index = "{}" }} +"#, + self.reason, + self.sid.display_registry_name(), + self.sid.url() + ) + } else { + write!( + f, + r#"{} for `{}`"#, + self.reason, + self.sid.display_registry_name(), + ) + } + } +} + +// Store a token in the cache for future calls. +pub fn cache_token(config: &Config, sid: &SourceId, token: &str) { + let url = sid.canonical_url(); + config + .credential_cache() + .insert(url.clone(), token.to_string()); +} + +/// Returns the token to use for the given registry. +/// If a `login_url` is provided and a token is not available, the +/// login_url will be included in the returned error. +pub fn auth_token(config: &Config, sid: &SourceId, login_url: Option<&Url>) -> CargoResult { + match auth_token_optional(config, sid)? { + Some(token) => Ok(token), + None => Err(AuthorizationError { + sid: sid.clone(), + login_url: login_url.cloned(), + reason: AuthorizationErrorReason::TokenMissing, + } + .into()), + } +} + +/// Returns the token to use for the given registry. +fn auth_token_optional(config: &Config, sid: &SourceId) -> CargoResult> { + let mut cache = config.credential_cache(); + let url = sid.canonical_url(); + + if let Some(token) = cache.get(url) { + return Ok(Some(token.clone())); + } + + let credential = registry_credential_config(config, sid)?; + let token = match credential { + RegistryCredentialConfig::None => return Ok(None), + RegistryCredentialConfig::Token(config_token) => config_token.to_string(), + RegistryCredentialConfig::Process(process) => { + run_command(config, &process, sid, Action::Get)?.unwrap() + } + }; + + cache.insert(url.clone(), token.clone()); + Ok(Some(token)) +} + +enum Action { + Get, + Store(String), + Erase, +} + +/// Saves the given token. +pub fn login(config: &Config, sid: &SourceId, token: String) -> CargoResult<()> { + match registry_credential_config(config, sid)? { + RegistryCredentialConfig::Process(process) => { + run_command(config, &process, sid, Action::Store(token))?; + } + _ => { + config::save_credentials(config, Some(token), &sid)?; + } + }; + Ok(()) +} + +/// Removes the token for the given registry. +pub fn logout(config: &Config, sid: &SourceId) -> CargoResult<()> { + match registry_credential_config(config, sid)? { + RegistryCredentialConfig::Process(process) => { + run_command(config, &process, sid, Action::Erase)?; + } + _ => { + config::save_credentials(config, None, &sid)?; + } + }; + Ok(()) +} + +fn run_command( + config: &Config, + process: &(PathBuf, Vec), + sid: &SourceId, + action: Action, +) -> CargoResult> { + let index_url = sid.url().as_str(); + let cred_proc; + let (exe, args) = if process.0.to_str().unwrap_or("").starts_with("cargo:") { + cred_proc = sysroot_credential(config, process)?; + &cred_proc + } else { + process + }; + if !args.iter().any(|arg| arg.contains("{action}")) { + let msg = |which| { + format!( + "credential process `{}` cannot be used to {}, \ + the credential-process configuration value must pass the \ + `{{action}}` argument in the config to support this command", + exe.display(), + which + ) + }; + match action { + Action::Get => {} + Action::Store(_) => bail!(msg("log in")), + Action::Erase => bail!(msg("log out")), + } + } + let action_str = match action { + Action::Get => "get", + Action::Store(_) => "store", + Action::Erase => "erase", + }; + let args: Vec<_> = args + .iter() + .map(|arg| { + arg.replace("{action}", action_str) + .replace("{index_url}", index_url) + }) + .collect(); + + let mut cmd = Command::new(&exe); + cmd.args(args) + .env(crate::CARGO_ENV, config.cargo_exe()?) + .env("CARGO_REGISTRY_INDEX_URL", index_url); + if sid.is_crates_io() { + cmd.env("CARGO_REGISTRY_NAME_OPT", "crates-io"); + } else if let Some(name) = sid.alt_registry_key() { + cmd.env("CARGO_REGISTRY_NAME_OPT", name); + } + match action { + Action::Get => { + cmd.stdout(Stdio::piped()); + } + Action::Store(_) => { + cmd.stdin(Stdio::piped()); + } + Action::Erase => {} + } + let mut child = cmd.spawn().with_context(|| { + let verb = match action { + Action::Get => "fetch", + Action::Store(_) => "store", + Action::Erase => "erase", + }; + format!( + "failed to execute `{}` to {} authentication token for registry `{}`", + exe.display(), + verb, + sid.display_registry_name(), + ) + })?; + let mut token = None; + match &action { + Action::Get => { + let mut buffer = String::new(); + log::debug!("reading into buffer"); + child + .stdout + .as_mut() + .unwrap() + .read_to_string(&mut buffer) + .with_context(|| { + format!( + "failed to read token from registry credential process `{}`", + exe.display() + ) + })?; + if let Some(end) = buffer.find('\n') { + if buffer.len() > end + 1 { + bail!( + "credential process `{}` returned more than one line of output; \ + expected a single token", + exe.display() + ); + } + buffer.truncate(end); + } + token = Some(buffer); + } + Action::Store(token) => { + writeln!(child.stdin.as_ref().unwrap(), "{}", token).with_context(|| { + format!( + "failed to send token to registry credential process `{}`", + exe.display() + ) + })?; + } + Action::Erase => {} + } + let status = child.wait().with_context(|| { + format!( + "registry credential process `{}` exit failure", + exe.display() + ) + })?; + if !status.success() { + let msg = match action { + Action::Get => "failed to authenticate to registry", + Action::Store(_) => "failed to store token to registry", + Action::Erase => "failed to erase token from registry", + }; + return Err(ProcessError::new( + &format!( + "registry credential process `{}` {} `{}`", + exe.display(), + msg, + sid.display_registry_name() + ), + Some(status), + None, + ) + .into()); + } + Ok(token) +} + +/// Gets the path to the libexec processes in the sysroot. +fn sysroot_credential( + config: &Config, + process: &(PathBuf, Vec), +) -> CargoResult<(PathBuf, Vec)> { + let cred_name = process.0.to_str().unwrap().strip_prefix("cargo:").unwrap(); + let cargo = config.cargo_exe()?; + let root = cargo + .parent() + .and_then(|p| p.parent()) + .ok_or_else(|| format_err!("expected cargo path {}", cargo.display()))?; + let exe = root.join("libexec").join(format!( + "cargo-credential-{}{}", + cred_name, + std::env::consts::EXE_SUFFIX + )); + let mut args = process.1.clone(); + if !args.iter().any(|arg| arg == "{action}") { + args.push("{action}".to_string()); + } + Ok((exe, args)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/command_prelude.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/command_prelude.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/command_prelude.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/command_prelude.rs 2023-01-10 13:38:26.000000000 +0000 @@ -469,25 +469,26 @@ ansi: false, render_diagnostics: false, }; + let two_kinds_of_msg_format_err = "cannot specify two kinds of `message-format` arguments"; for fmt in self._values_of("message-format") { for fmt in fmt.split(',') { let fmt = fmt.to_ascii_lowercase(); match fmt.as_str() { "json" => { if message_format.is_some() { - bail!("cannot specify two kinds of `message-format` arguments"); + bail!(two_kinds_of_msg_format_err); } message_format = Some(default_json); } "human" => { if message_format.is_some() { - bail!("cannot specify two kinds of `message-format` arguments"); + bail!(two_kinds_of_msg_format_err); } message_format = Some(MessageFormat::Human); } "short" => { if message_format.is_some() { - bail!("cannot specify two kinds of `message-format` arguments"); + bail!(two_kinds_of_msg_format_err); } message_format = Some(MessageFormat::Short); } @@ -499,7 +500,7 @@ Some(MessageFormat::Json { render_diagnostics, .. }) => *render_diagnostics = true, - _ => bail!("cannot specify two kinds of `message-format` arguments"), + _ => bail!(two_kinds_of_msg_format_err), } } "json-diagnostic-short" => { @@ -508,7 +509,7 @@ } match &mut message_format { Some(MessageFormat::Json { short, .. }) => *short = true, - _ => bail!("cannot specify two kinds of `message-format` arguments"), + _ => bail!(two_kinds_of_msg_format_err), } } "json-diagnostic-rendered-ansi" => { @@ -517,7 +518,7 @@ } match &mut message_format { Some(MessageFormat::Json { ansi, .. }) => *ansi = true, - _ => bail!("cannot specify two kinds of `message-format` arguments"), + _ => bail!(two_kinds_of_msg_format_err), } } s => bail!("invalid message format specifier: `{}`", s), @@ -664,13 +665,23 @@ } fn registry(&self, config: &Config) -> CargoResult> { - match self._value_of("registry") { - Some(registry) => { - validate_package_name(registry, "registry name", "")?; - Ok(Some(registry.to_string())) + let registry = self._value_of("registry"); + let index = self._value_of("index"); + let result = match (registry, index) { + (None, None) => config.default_registry()?, + (None, Some(_)) => { + // If --index is set, then do not look at registry.default. + None } - None => config.default_registry(), - } + (Some(r), None) => { + validate_package_name(r, "registry name", "")?; + Some(r.to_string()) + } + (Some(_), Some(_)) => { + bail!("both `--index` and `--registry` should not be set at the same time") + } + }; + Ok(result) } fn index(&self) -> CargoResult> { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/config/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/config/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/config/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/config/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -71,8 +71,9 @@ use crate::core::{features, CliUnstable, Shell, SourceId, Workspace, WorkspaceRootConfig}; use crate::ops; use crate::util::errors::CargoResult; -use crate::util::toml as cargo_toml; use crate::util::validate_package_name; +use crate::util::CanonicalUrl; +use crate::util::{internal, toml as cargo_toml}; use crate::util::{FileLock, Filesystem, IntoUrl, IntoUrlWithBase, Rustc}; use anyhow::{anyhow, bail, format_err, Context as _}; use cargo_util::paths; @@ -145,6 +146,8 @@ shell: RefCell, /// A collection of configuration options values: LazyCell>, + /// A collection of configuration options from the credentials file + credential_values: LazyCell>, /// CLI config values, passed in via `configure`. cli_config: Option>, /// The current working directory of cargo @@ -188,6 +191,9 @@ upper_case_env: HashMap, /// Tracks which sources have been updated to avoid multiple updates. updated_sources: LazyCell>>, + /// Cache of credentials from configuration or credential providers. + /// Maps from url to credential value. + credential_cache: LazyCell>>, /// Lock, if held, of the global package cache along with the number of /// acquisitions so far. package_cache_lock: RefCell, usize)>>, @@ -267,6 +273,7 @@ cwd, search_stop_path: None, values: LazyCell::new(), + credential_values: LazyCell::new(), cli_config: None, cargo_exe: LazyCell::new(), rustdoc: LazyCell::new(), @@ -291,6 +298,7 @@ env, upper_case_env, updated_sources: LazyCell::new(), + credential_cache: LazyCell::new(), package_cache_lock: RefCell::new(None), http_config: LazyCell::new(), future_incompat_config: LazyCell::new(), @@ -418,6 +426,18 @@ pub fn cargo_exe(&self) -> CargoResult<&Path> { self.cargo_exe .try_borrow_with(|| { + fn from_env() -> CargoResult { + // Try re-using the `cargo` set in the environment already. This allows + // commands that use Cargo as a library to inherit (via `cargo `) + // or set (by setting `$CARGO`) a correct path to `cargo` when the current exe + // is not actually cargo (e.g., `cargo-*` binaries, Valgrind, `ld.so`, etc.). + let exe = env::var_os(crate::CARGO_ENV) + .map(PathBuf::from) + .ok_or_else(|| anyhow!("$CARGO not set"))? + .canonicalize()?; + Ok(exe) + } + fn from_current_exe() -> CargoResult { // Try fetching the path to `cargo` using `env::current_exe()`. // The method varies per operating system and might fail; in particular, @@ -443,7 +463,8 @@ paths::resolve_executable(&argv0) } - let exe = from_current_exe() + let exe = from_env() + .or_else(|_| from_current_exe()) .or_else(|_| from_argv()) .with_context(|| "couldn't get the path to cargo executable")?; Ok(exe) @@ -458,6 +479,13 @@ .borrow_mut() } + /// Cached credentials from credential providers or configuration. + pub fn credential_cache(&self) -> RefMut<'_, HashMap> { + self.credential_cache + .borrow_with(|| RefCell::new(HashMap::new())) + .borrow_mut() + } + /// Gets all config values from disk. /// /// This will lazy-load the values as necessary. Callers are responsible @@ -474,10 +502,11 @@ /// entries. This doesn't respect environment variables. You should avoid /// using this if possible. pub fn values_mut(&mut self) -> CargoResult<&mut HashMap> { - match self.values.borrow_mut() { - Some(map) => Ok(map), - None => bail!("config values not loaded yet"), - } + let _ = self.values()?; + Ok(self + .values + .borrow_mut() + .expect("already loaded config values")) } // Note: this is used by RLS, not Cargo. @@ -554,8 +583,21 @@ /// This does NOT look at environment variables. See `get_cv_with_env` for /// a variant that supports environment variables. fn get_cv(&self, key: &ConfigKey) -> CargoResult> { + if let Some(vals) = self.credential_values.borrow() { + let val = self.get_cv_helper(key, vals)?; + if val.is_some() { + return Ok(val); + } + } + self.get_cv_helper(key, self.values()?) + } + + fn get_cv_helper( + &self, + key: &ConfigKey, + vals: &HashMap, + ) -> CargoResult> { log::trace!("get cv {:?}", key); - let vals = self.values()?; if key.is_root() { // Returning the entire root table (for example `cargo config get` // with no key). The definition here shouldn't matter. @@ -1349,8 +1391,6 @@ CV::Table(table, _def) => table, _ => unreachable!(), }; - // Force values to be loaded. - let _ = self.values()?; let values = self.values_mut()?; for (key, value) in loaded_map.into_iter() { match values.entry(key) { @@ -1481,7 +1521,17 @@ } /// Loads credentials config from the credentials file, if present. - pub fn load_credentials(&mut self) -> CargoResult<()> { + /// + /// The credentials are loaded into a separate field to enable them + /// to be lazy-loaded after the main configuration has been loaded, + /// without requiring `mut` access to the `Config`. + /// + /// If the credentials are already loaded, this function does nothing. + pub fn load_credentials(&self) -> CargoResult<()> { + if self.credential_values.filled() { + return Ok(()); + } + let home_path = self.home_path.clone().into_path_unlocked(); let credentials = match self.get_file_path(&home_path, "credentials", true)? { Some(credentials) => credentials, @@ -1505,20 +1555,24 @@ } } + let mut credential_values = HashMap::new(); if let CV::Table(map, _) = value { - let base_map = self.values_mut()?; + let base_map = self.values()?; for (k, v) in map { - match base_map.entry(k) { - Vacant(entry) => { - entry.insert(v); + let entry = match base_map.get(&k) { + Some(base_entry) => { + let mut entry = base_entry.clone(); + entry.merge(v, true)?; + entry } - Occupied(mut entry) => { - entry.get_mut().merge(v, true)?; - } - } + None => v, + }; + credential_values.insert(k, entry); } } - + self.credential_values + .fill(credential_values) + .expect("was not filled at beginning of the function"); Ok(()) } @@ -2040,8 +2094,17 @@ pub fn save_credentials( cfg: &Config, token: Option, - registry: Option<&str>, + registry: &SourceId, ) -> CargoResult<()> { + let registry = if registry.is_crates_io() { + None + } else { + let name = registry + .alt_registry_key() + .ok_or_else(|| internal("can't save credentials for anonymous registry"))?; + Some(name) + }; + // If 'credentials.toml' exists, we should write to that, otherwise // use the legacy 'credentials'. There's no need to print the warning // here, because it would already be printed at load time. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -29,6 +29,7 @@ print_available_examples, print_available_packages, print_available_tests, }; +pub mod auth; mod canonical_url; pub mod command_prelude; pub mod config; @@ -73,6 +74,15 @@ } } +/// Formats a number of bytes into a human readable SI-prefixed size. +/// Returns a tuple of `(quantity, units)`. +pub fn human_readable_bytes(bytes: u64) -> (f32, &'static str) { + static UNITS: [&str; 7] = ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB"]; + let bytes = bytes as f32; + let i = ((bytes.log2() / 10.0) as usize).min(UNITS.len() - 1); + (bytes / 1024_f32.powi(i as i32), UNITS[i]) +} + pub fn iter_join_onto(mut w: W, iter: I, delim: &str) -> fmt::Result where W: fmt::Write, @@ -122,3 +132,37 @@ } prefix } + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_human_readable_bytes() { + assert_eq!(human_readable_bytes(0), (0., "B")); + assert_eq!(human_readable_bytes(8), (8., "B")); + assert_eq!(human_readable_bytes(1000), (1000., "B")); + assert_eq!(human_readable_bytes(1024), (1., "KiB")); + assert_eq!(human_readable_bytes(1024 * 420 + 512), (420.5, "KiB")); + assert_eq!(human_readable_bytes(1024 * 1024), (1., "MiB")); + assert_eq!( + human_readable_bytes(1024 * 1024 + 1024 * 256), + (1.25, "MiB") + ); + assert_eq!(human_readable_bytes(1024 * 1024 * 1024), (1., "GiB")); + assert_eq!( + human_readable_bytes((1024. * 1024. * 1024. * 3.1415) as u64), + (3.1415, "GiB") + ); + assert_eq!(human_readable_bytes(1024 * 1024 * 1024 * 1024), (1., "TiB")); + assert_eq!( + human_readable_bytes(1024 * 1024 * 1024 * 1024 * 1024), + (1., "PiB") + ); + assert_eq!( + human_readable_bytes(1024 * 1024 * 1024 * 1024 * 1024 * 1024), + (1., "EiB") + ); + assert_eq!(human_readable_bytes(u64::MAX), (16., "EiB")); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1,4 +1,4 @@ -use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet}; +use std::collections::{BTreeMap, BTreeSet, HashMap}; use std::fmt; use std::marker::PhantomData; use std::path::{Path, PathBuf}; @@ -8,6 +8,7 @@ use anyhow::{anyhow, bail, Context as _}; use cargo_platform::Platform; use cargo_util::paths; +use itertools::Itertools; use lazycell::LazyCell; use log::{debug, trace}; use semver::{self, VersionReq}; @@ -1737,12 +1738,24 @@ debug!("manifest has no build targets"); } - if let Err(e) = unique_build_targets(&targets, package_root) { - warnings.push(format!( - "file found to be present in multiple \ - build targets: {}", - e - )); + if let Err(conflict_targets) = unique_build_targets(&targets, package_root) { + conflict_targets + .iter() + .for_each(|(target_path, conflicts)| { + warnings.push(format!( + "file `{}` found to be present in multiple \ + build targets:\n{}", + target_path.display().to_string(), + conflicts + .iter() + .map(|t| format!( + " * `{}` target `{}`", + t.kind().description(), + t.name(), + )) + .join("\n") + )); + }) } if let Some(links) = &package.links { @@ -2442,16 +2455,27 @@ /// Checks a list of build targets, and ensures the target names are unique within a vector. /// If not, the name of the offending build target is returned. -fn unique_build_targets(targets: &[Target], package_root: &Path) -> Result<(), String> { - let mut seen = HashSet::new(); +fn unique_build_targets( + targets: &[Target], + package_root: &Path, +) -> Result<(), HashMap>> { + let mut source_targets = HashMap::<_, Vec<_>>::new(); for target in targets { if let TargetSourcePath::Path(path) = target.src_path() { let full = package_root.join(path); - if !seen.insert(full.clone()) { - return Err(full.display().to_string()); - } + source_targets.entry(full).or_default().push(target.clone()); } } + + let conflict_targets = source_targets + .into_iter() + .filter(|(_, targets)| targets.len() > 1) + .collect::>(); + + if !conflict_targets.is_empty() { + return Err(conflict_targets); + } + Ok(()) } @@ -2862,12 +2886,12 @@ } #[derive(Default, Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "kebab-case")] struct TomlTarget { name: Option, // The intention was to only accept `crate-type` here but historical // versions of Cargo also accepted `crate_type`, so look for both. - #[serde(rename = "crate-type")] crate_type: Option>, #[serde(rename = "crate_type")] crate_type2: Option>, @@ -2880,12 +2904,12 @@ bench: Option, doc: Option, plugin: Option, + doc_scrape_examples: Option, #[serde(rename = "proc-macro")] proc_macro_raw: Option, #[serde(rename = "proc_macro")] proc_macro_raw2: Option, harness: Option, - #[serde(rename = "required-features")] required_features: Option>, edition: Option, } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml/targets.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml/targets.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml/targets.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml/targets.rs 2023-01-10 13:38:26.000000000 +0000 @@ -18,6 +18,7 @@ PathValue, StringOrBool, StringOrVec, TomlBenchTarget, TomlBinTarget, TomlExampleTarget, TomlLibTarget, TomlManifest, TomlTarget, TomlTestTarget, }; +use crate::core::compiler::rustdoc::RustdocScrapeExamples; use crate::core::compiler::CrateType; use crate::core::{Edition, Feature, Features, Target}; use crate::util::errors::CargoResult; @@ -808,6 +809,11 @@ .set_benched(toml.bench.unwrap_or_else(|| t2.benched())) .set_harness(toml.harness.unwrap_or_else(|| t2.harness())) .set_proc_macro(toml.proc_macro().unwrap_or_else(|| t2.proc_macro())) + .set_doc_scrape_examples(match toml.doc_scrape_examples { + None => RustdocScrapeExamples::Unset, + Some(false) => RustdocScrapeExamples::Disabled, + Some(true) => RustdocScrapeExamples::Enabled, + }) .set_for_host(match (toml.plugin, toml.proc_macro()) { (None, None) => t2.for_host(), (Some(true), _) | (_, Some(true)) => true, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml_mut/manifest.rs cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml_mut/manifest.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/src/cargo/util/toml_mut/manifest.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/cargo/util/toml_mut/manifest.rs 2023-01-10 13:38:26.000000000 +0000 @@ -246,7 +246,7 @@ } /// An editable Cargo manifest that is available locally. -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct LocalManifest { /// Path to the manifest. pub path: PathBuf, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/codebase.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/codebase.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/codebase.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/codebase.md 2023-01-10 13:38:26.000000000 +0000 @@ -12,7 +12,7 @@ — Every major operation is implemented here. This is where the binary CLI usually calls into to perform the appropriate action. - * [`src/cargo/ops/cargo_compile.rs`](https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_compile.rs) + * [`src/cargo/ops/cargo_compile/mod.rs`](https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_compile/mod.rs) — This is the entry point for all the compilation commands. This is a good place to start if you want to follow how compilation starts and flows to completion. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/compilation.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/compilation.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/compilation.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/architecture/compilation.md 2023-01-10 13:38:26.000000000 +0000 @@ -9,7 +9,7 @@ 1. Perform dependency resolution (see [the resolution chapter]). 2. Generate the root `Unit`s, the things the user requested to compile on the - command-line. This is done in [`generate_targets`]. + command-line. This is done in the [`unit_generator`] module. 3. Starting from the root `Unit`s, generate the [`UnitGraph`] by walking the dependency graph from the resolver. The `UnitGraph` contains all of the `Unit` structs, and information about the dependency relationships between @@ -26,8 +26,8 @@ can be used for various things, such as running tests after the compilation has finished. -[`cargo_compile`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_compile.rs -[`generate_targets`]: https://github.com/rust-lang/cargo/blob/e4b65bdc80f2a293447f2f6a808fa7c84bf9a357/src/cargo/ops/cargo_compile.rs#L725-L739 +[`cargo_compile`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_compile/mod.rs +[`unit_generator`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/cargo_compile/unit_generator.rs [`UnitGraph`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/core/compiler/unit_graph.rs [the resolution chapter]: packages.md [`Unit`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/core/compiler/unit.rs diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/tests/writing.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/tests/writing.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/contrib/src/tests/writing.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/contrib/src/tests/writing.md 2023-01-10 13:38:26.000000000 +0000 @@ -269,7 +269,7 @@ * `/path/to/my/cargo/target/debug/cargo check` * Using a debugger like `lldb` or `gdb`: 1. `lldb /path/to/my/cargo/target/debug/cargo` - 2. Set a breakpoint, for example: `b generate_targets` + 2. Set a breakpoint, for example: `b generate_units` 3. Run with arguments: `r check` [`testsuite`]: https://github.com/rust-lang/cargo/tree/master/tests/testsuite/ diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/guide/tests.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/guide/tests.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/guide/tests.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/guide/tests.md 2023-01-10 13:38:26.000000000 +0000 @@ -33,7 +33,7 @@ `cargo test` runs additional checks as well. It will compile any examples you’ve included to ensure they still compile. It also runs documentation -tests to ensure your code samples from documentation comments compiles. +tests to ensure your code samples from documentation comments compile. Please see the [testing guide][testing] in the Rust documentation for a general view of writing and organizing tests. See [Cargo Targets: Tests] to learn more about different styles of tests in Cargo. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/config.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/config.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/config.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/config.md 2023-01-10 13:38:26.000000000 +0000 @@ -243,7 +243,7 @@ ### Config-relative paths Paths in config files may be absolute, relative, or a bare name without any path separators. -Paths for executables without a path separator will use the `PATH` environment variable to search for the executable. +Paths for executables without a path separator will use the `PATH` environment variable to search for the executable. Paths for non-executables will be relative to where the config value is defined. In particular, rules are: @@ -261,7 +261,7 @@ > > To avoid unexpected results, the rule of thumb is putting your extra config files > at the same level of discovered `.cargo/config.toml` in your porject. -> For instance, given a project `/my/project`, +> For instance, given a project `/my/project`, > it is recommended to put config files under `/my/project/.cargo` > or a new directory at the same level, such as `/my/project/.config`. @@ -351,6 +351,7 @@ d = "doc" t = "test" r = "run" +rm = "remove" ``` Aliases are not allowed to redefine existing built-in commands. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/environment-variables.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/environment-variables.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/environment-variables.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/environment-variables.md 2023-01-10 13:38:26.000000000 +0000 @@ -23,6 +23,12 @@ * `CARGO_TARGET_DIR` — Location of where to place all generated artifacts, relative to the current working directory. See [`build.target-dir`] to set via config. +* `CARGO` - If set, Cargo will forward this value instead of setting it + to its own auto-detected path when it builds crates and when it + executes build scripts and external subcommands. This value is not + directly executed by Cargo, and should always point at a command that + behaves exactly like `cargo`, as that's what users of the variable + will be expecting. * `RUSTC` — Instead of running `rustc`, Cargo will execute this specified compiler instead. See [`build.rustc`] to set via config. * `RUSTC_WRAPPER` — Instead of simply running `rustc`, Cargo will execute this diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/semver.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/semver.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/semver.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/semver.md 2023-01-10 13:38:26.000000000 +0000 @@ -18,7 +18,7 @@ programmatically check compatibility rules. [Change categories]: #change-categories -[rust-semverver]: https://github.com/rust-dev-tools/rust-semverver +[rust-semverver]: https://github.com/rust-lang/rust-semverver [SemVer compatibility]: resolver.md#semver-compatibility ## Change categories diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/unstable.md cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/unstable.md --- cargo-0.67.1+ds0ubuntu0.libgit2/src/doc/src/reference/unstable.md 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/src/doc/src/reference/unstable.md 2023-01-10 13:38:26.000000000 +0000 @@ -100,6 +100,7 @@ * [`cargo logout`](#cargo-logout) — Adds the `logout` command to remove the currently saved registry token. * [sparse-registry](#sparse-registry) — Adds support for fetching from static-file HTTP registries (`sparse+`) * [publish-timeout](#publish-timeout) — Controls the timeout between uploading the crate and being available in the index + * [registry-auth](#registry-auth) — Adds support for authenticated registries. ### allow-features @@ -787,14 +788,14 @@ * Tracking Issue: [#9096](https://github.com/rust-lang/cargo/pull/9096) * Original Pull Request: [#9992](https://github.com/rust-lang/cargo/pull/9992) -Allow Cargo packages to depend on `bin`, `cdylib`, and `staticlib` crates, +Allow Cargo packages to depend on `bin`, `cdylib`, and `staticlib` crates, and use the artifacts built by those crates at compile time. Run `cargo` with `-Z bindeps` to enable this functionality. **Example:** use _cdylib_ artifact in build script -The `Cargo.toml` in the consuming package, building the `bar` library as `cdylib` +The `Cargo.toml` in the consuming package, building the `bar` library as `cdylib` for a specific build target… ```toml @@ -842,6 +843,19 @@ The format of the sparse index is identical to a checkout of a git-based index. +The `registries.crates-io.protocol` config option can be used to set the default protocol +for crates.io. This option requires `-Z sparse-registry` to be enabled. + +* `sparse` — Use sparse index. +* `git` — Use git index. +* If the option is unset, it will be sparse index if `-Z sparse-registry` is enabled, + otherwise it will be git index. + +Cargo locally caches the crate metadata files, and captures an `ETag` or `Last-Modified` +HTTP header from the server for each entry. When refreshing crate metadata, Cargo will +send the `If-None-Match` or `If-Modified-Since` header to allow the server to respond +with HTTP 304 if the local cache is valid, saving time and bandwidth. + ### publish-timeout * Tracking Issue: [11222](https://github.com/rust-lang/cargo/issues/11222) @@ -859,6 +873,30 @@ timeout = 300 # in seconds ``` +### registry-auth +* Tracking Issue: [10474](https://github.com/rust-lang/cargo/issues/10474) +* RFC: [#3139](https://github.com/rust-lang/rfcs/pull/3139) + +Enables Cargo to include the authorization token for API requests, crate downloads +and sparse index updates by adding a configuration option to config.json +in the registry index. + +To use this feature, the registry server must include `"auth-required": true` in +`config.json`, and you must pass the `-Z registry-auth` flag on the Cargo command line. + +When using the sparse protocol, Cargo will attempt to fetch the `config.json` file before +fetching any other files. If the server responds with an HTTP 401, then Cargo will assume +that the registry requires authentication and re-attempt the request for `config.json` +with the authentication token included. + +On authentication failure (or missing authentication token) the server MAY include a +`WWW-Authenticate` header with a `Cargo login_url` challenge to indicate where the user +can go to get a token. + +``` +WWW-Authenticate: Cargo login_url="https://test-registry-login/me +``` + ### credential-process * Tracking Issue: [#8933](https://github.com/rust-lang/cargo/issues/8933) * RFC: [#2730](https://github.com/rust-lang/rfcs/pull/2730) @@ -1003,8 +1041,8 @@ The following environment variables will be provided to the executed command: * `CARGO` — Path to the `cargo` binary executing the command. -* `CARGO_REGISTRY_NAME` — Name of the registry the authentication token is for. -* `CARGO_REGISTRY_API_URL` — The URL of the registry API. +* `CARGO_REGISTRY_INDEX_URL` — The URL of the registry index. +* `CARGO_REGISTRY_NAME_OPT` — Optional name of the registry. Should not be used as a storage key. Not always available. #### `cargo logout` @@ -1116,15 +1154,44 @@ * RFC: [#3123](https://github.com/rust-lang/rfcs/pull/3123) * Tracking Issue: [#9910](https://github.com/rust-lang/cargo/issues/9910) -The `-Z rustdoc-scrape-examples` argument tells Rustdoc to search crates in the current workspace -for calls to functions. Those call-sites are then included as documentation. The flag can take an -argument of `all` or `examples` which configures which crate in the workspace to analyze for examples. -For instance: +The `-Z rustdoc-scrape-examples` flag tells Rustdoc to search crates in the current workspace +for calls to functions. Those call-sites are then included as documentation. You can use the flag +like this: ``` -cargo doc -Z unstable-options -Z rustdoc-scrape-examples=examples +cargo doc -Z unstable-options -Z rustdoc-scrape-examples ``` +By default, Cargo will scrape from the packages that are being documented, as well as scrape from +examples for the packages (i.e. those corresponding to the `--examples` flag). You can individually +enable or disable targets from being scraped with the `doc-scrape-examples` flag, such as: + +```toml +# Disable scraping examples from a library +[lib] +doc-scrape-examples = false + +# Enable scraping examples from a binary +[[bin]] +name = "my-bin" +doc-scrape-examples = true +``` + +**Note on tests:** enabling `doc-scrape-examples` on test targets will not currently have any effect. Scraping +examples from tests is a work-in-progress. + +**Note on dev-dependencies:** documenting a library does not normally require the crate's dev-dependencies. However, +example units do require dev-deps. For backwards compatibility, `-Z rustdoc-scrape-examples` will *not* introduce a +dev-deps requirement for `cargo doc`. Therefore examples will *not* be scraped from example targets under the +following conditions: + +1. No target being documented requires dev-deps, AND +2. At least one crate being documented requires dev-deps, AND +3. The `doc-scrape-examples` parameter is unset for `[[example]]` targets. + +If you want examples to be scraped from example targets, then you must not satisfy one of the above conditions. + + ### check-cfg * RFC: [#3013](https://github.com/rust-lang/rfcs/pull/3013) @@ -1376,7 +1443,7 @@ ### Workspace Inheritance Workspace Inheritance has been stabilized in the 1.64 release. -See [workspace.package](workspaces.md#the-package-table), -[workspace.dependencies](workspaces.md#the-dependencies-table), +See [workspace.package](workspaces.md#the-package-table), +[workspace.dependencies](workspaces.md#the-dependencies-table), and [inheriting-a-dependency-from-a-workspace](specifying-dependencies.md#inheriting-a-dependency-from-a-workspace) for more information. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/alt_registry.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/alt_registry.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/alt_registry.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/alt_registry.rs 2023-01-10 13:38:26.000000000 +0000 @@ -404,9 +404,11 @@ // Now perform the actual publish p.cargo("publish --registry alternative") .with_status(101) - .with_stderr_contains( - "error: no upload token found, \ - please run `cargo login` or pass `--token`", + .with_stderr( + "\ +[UPDATING] `alternative` index +error: no token found for `alternative`, please run `cargo login --registry alternative` +or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN", ) .run(); } @@ -1289,6 +1291,25 @@ .run(); } } + +#[cargo_test] +fn both_index_and_default() { + let p = project().file("src/lib.rs", "").build(); + for cmd in &[ + "publish", + "owner", + "search", + "yank --version 1.0.0", + "install foo", + ] { + p.cargo(cmd) + .env("CARGO_REGISTRY_DEFAULT", "undefined") + .arg(format!("--index=index_url")) + .with_status(101) + .with_stderr("[ERROR] invalid url `index_url`: relative URL without a base") + .run(); + } +} #[cargo_test] fn sparse_lockfile() { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/artifact_dep.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/artifact_dep.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/artifact_dep.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/artifact_dep.rs 2023-01-10 13:38:26.000000000 +0000 @@ -1919,6 +1919,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", @@ -2275,3 +2276,69 @@ .masquerade_as_nightly_cargo(&["bindeps"]) .run(); } + +#[cargo_test] +fn calc_bin_artifact_fingerprint() { + // See rust-lang/cargo#10527 + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + resolver = "2" + + [dependencies] + bar = { path = "bar/", artifact = "bin" } + "#, + ) + .file( + "src/main.rs", + r#" + fn main() { + let _b = include_bytes!(env!("CARGO_BIN_FILE_BAR")); + } + "#, + ) + .file("bar/Cargo.toml", &basic_bin_manifest("bar")) + .file("bar/src/main.rs", r#"fn main() { println!("foo") }"#) + .build(); + p.cargo("check -Z bindeps") + .masquerade_as_nightly_cargo(&["bindeps"]) + .with_stderr( + "\ +[COMPILING] bar v0.5.0 ([CWD]/bar) +[CHECKING] foo v0.1.0 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); + + p.change_file("bar/src/main.rs", r#"fn main() { println!("bar") }"#); + // Change in artifact bin dep `bar` propagates to `foo`, triggering recompile. + p.cargo("check -v -Z bindeps") + .masquerade_as_nightly_cargo(&["bindeps"]) + .with_stderr( + "\ +[COMPILING] bar v0.5.0 ([CWD]/bar) +[RUNNING] `rustc --crate-name bar [..]` +[CHECKING] foo v0.1.0 ([CWD]) +[RUNNING] `rustc --crate-name foo [..]` +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); + + // All units are fresh. No recompile. + p.cargo("check -v -Z bindeps") + .masquerade_as_nightly_cargo(&["bindeps"]) + .with_stderr( + "\ +[FRESH] bar v0.5.0 ([CWD]/bar) +[FRESH] foo v0.1.0 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/build.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/build.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/build.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/build.rs 2023-01-10 13:38:26.000000000 +0000 @@ -259,7 +259,9 @@ p.cargo("build") .with_stderr( "\ -warning: file found to be present in multiple build targets: [..]main.rs +warning: file `[..]main.rs` found to be present in multiple build targets: + * `lib` target `main` + * `bin` target `foo` [COMPILING] foo v0.0.1 ([..]) [FINISHED] [..] ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/build_script.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/build_script.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/build_script.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/build_script.rs 2023-01-10 13:38:26.000000000 +0000 @@ -4,9 +4,11 @@ use cargo_test_support::paths::CargoPathExt; use cargo_test_support::registry::Package; use cargo_test_support::tools; -use cargo_test_support::{basic_manifest, cross_compile, is_coarse_mtime, project, project_in}; +use cargo_test_support::{ + basic_manifest, cargo_exe, cross_compile, is_coarse_mtime, project, project_in, +}; use cargo_test_support::{rustc_host, sleep_ms, slow_cpu_multiplier, symlink_supported}; -use cargo_util::paths::remove_dir_all; +use cargo_util::paths::{self, remove_dir_all}; use std::env; use std::fs; use std::io; @@ -80,8 +82,15 @@ ) .file("bar/src/lib.rs", "pub fn hello() {}"); + let cargo = cargo_exe().canonicalize().unwrap(); + let cargo = cargo.to_str().unwrap(); + let rustc = paths::resolve_executable("rustc".as_ref()) + .unwrap() + .canonicalize() + .unwrap(); + let rustc = rustc.to_str().unwrap(); let file_content = format!( - r#" + r##" use std::env; use std::path::Path; @@ -107,7 +116,12 @@ let _feat = env::var("CARGO_FEATURE_FOO").unwrap(); - let _cargo = env::var("CARGO").unwrap(); + let cargo = env::var("CARGO").unwrap(); + if env::var_os("CHECK_CARGO_IS_RUSTC").is_some() {{ + assert_eq!(cargo, r#"{rustc}"#); + }} else {{ + assert_eq!(cargo, r#"{cargo}"#); + }} let rustc = env::var("RUSTC").unwrap(); assert_eq!(rustc, "rustc"); @@ -124,7 +138,7 @@ let rustflags = env::var("CARGO_ENCODED_RUSTFLAGS").unwrap(); assert_eq!(rustflags, ""); }} - "#, + "##, p.root() .join("target") .join("debug") @@ -135,6 +149,11 @@ let p = p.file("bar/build.rs", &file_content).build(); p.cargo("build --features bar_feat").run(); + p.cargo("build --features bar_feat") + // we use rustc since $CARGO is only used if it points to a path that exists + .env("CHECK_CARGO_IS_RUSTC", "1") + .env(cargo::CARGO_ENV, rustc) + .run(); } #[cargo_test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -23,6 +23,41 @@ &cargo_test_support::basic_manifest("my-package2", "0.3.0+my-package2"), ) .file("p2/src/lib.rs", "") + .file( + "p3/Cargo.toml", + &cargo_test_support::basic_manifest("my-package3", "0.3.0+my-package2"), + ) + .file("p3/src/lib.rs", "") + .file( + "p4/Cargo.toml", + &cargo_test_support::basic_manifest("my-package4", "0.3.0+my-package2"), + ) + .file("p4/src/lib.rs", "") + .file( + "p5/Cargo.toml", + &cargo_test_support::basic_manifest("my-package5", "0.3.0+my-package2"), + ) + .file("p5/src/lib.rs", "") + .file( + "p6/Cargo.toml", + &cargo_test_support::basic_manifest("my-package6", "0.3.0+my-package2"), + ) + .file("p6/src/lib.rs", "") + .file( + "p7/Cargo.toml", + &cargo_test_support::basic_manifest("my-package7", "0.3.0+my-package2"), + ) + .file("p7/src/lib.rs", "") + .file( + "p8/Cargo.toml", + &cargo_test_support::basic_manifest("my-package8", "0.3.0+my-package2"), + ) + .file("p8/src/lib.rs", "") + .file( + "p9/Cargo.toml", + &cargo_test_support::basic_manifest("my-package9", "0.3.0+my-package2"), + ) + .file("p9/src/lib.rs", "") }); let git_url = git_dep.url().to_string(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_add/git_inferred_name_multiple/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -1,2 +1,5 @@ Updating git repository `[ROOTURL]/git-package` -error: multiple packages found at `[ROOTURL]/git-package`: my-package1, my-package2 +error: multiple packages found at `[ROOTURL]/git-package`: + my-package1, my-package2, my-package3, my-package4, my-package5, my-package6 + my-package7, my-package8, my-package9 +To disambiguate, run `cargo add --git [ROOTURL]/git-package ` diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_command.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_command.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_command.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_command.rs 2023-01-10 13:38:26.000000000 +0000 @@ -335,13 +335,26 @@ let cargo = cargo_exe().canonicalize().unwrap(); let mut path = path(); - path.push(target_dir); + path.push(target_dir.clone()); let path = env::join_paths(path.iter()).unwrap(); cargo_process("envtest") .env("PATH", &path) .with_stdout(cargo.to_str().unwrap()) .run(); + + // Check that subcommands inherit an overriden $CARGO + let envtest_bin = target_dir + .join("cargo-envtest") + .with_extension(std::env::consts::EXE_EXTENSION) + .canonicalize() + .unwrap(); + let envtest_bin = envtest_bin.to_str().unwrap(); + cargo_process("envtest") + .env("PATH", &path) + .env(cargo::CARGO_ENV, &envtest_bin) + .with_stdout(envtest_bin) + .run(); } #[cargo_test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_features.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_features.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_features.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_features.rs 2023-01-10 13:38:26.000000000 +0000 @@ -626,6 +626,14 @@ ) .file("src/lib.rs", "") .build(); + + // HACK: Inject `a` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("a", "0.0.1").file("src/lib.rs", "").publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .masquerade_as_nightly_cargo(&["test-dummy-unstable"]) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,72 @@ +use cargo_test_support::basic_manifest; +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::git; +use cargo_test_support::project; +use cargo_test_support::CargoCommand; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + + let git_project1 = git::new("bar1", |project| { + project + .file("Cargo.toml", &basic_manifest("bar", "0.1.0")) + .file("src/lib.rs", "") + }) + .url(); + + let git_project2 = git::new("bar2", |project| { + project + .file("Cargo.toml", &basic_manifest("bar", "0.1.0")) + .file("src/lib.rs", "") + }) + .url(); + + let in_project = project() + .file( + "Cargo.toml", + &format!( + "[workspace]\n\ + members = [ \"my-member\" ]\n\ + \n\ + [package]\n\ + name = \"my-project\"\n\ + version = \"0.1.0\"\n\ + \n\ + [dependencies]\n\ + bar = {{ git = \"{git_project1}\" }}\n\ + \n\ + [patch.\"{git_project1}\"]\n\ + bar = {{ git = \"{git_project2}\" }}\n\ + \n\ + [patch.crates-io]\n\ + bar = {{ git = \"{git_project2}\" }}\n", + ), + ) + .file("src/lib.rs", "") + .file( + "my-member/Cargo.toml", + "[package]\n\ + name = \"my-member\"\n\ + version = \"0.1.0\"\n\ + \n\ + [dependencies]\n\ + bar = \"0.1.0\"\n", + ) + .file("my-member/src/lib.rs", "") + .build(); + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["bar"]) + .current_dir(&in_project.root()) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &in_project.root()); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,9 @@ +[workspace] +members = [ "my-member" ] + +[package] +name = "my-project" +version = "0.1.0" + +[patch.crates-io] +bar = { git = "[ROOTURL]/bar2" } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_patch/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,3 @@ + Removing bar from dependencies + Updating git repository `[ROOTURL]/bar2` + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,36 @@ +[package] +name = "cargo-remove-test-fixture" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = "0.1.0" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" +toml = "0.2.3" +docopt = "0.6" + +[features] +std = ["serde/std", "semver/std"] + +[profile.dev.package.docopt] +opt-level = 3 + +[profile.dev.package."toml@0.1.0"] +opt-level = 3 + +[profile.release.package.toml] +opt-level = 1 +overflow-checks = false diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/in/src/lib.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::CargoCommand; +use cargo_test_support::Project; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["toml"]) + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,32 @@ +[package] +name = "cargo-remove-test-fixture" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = "0.1.0" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" +toml = "0.2.3" +docopt = "0.6" + +[features] +std = ["serde/std", "semver/std"] + +[profile.dev.package.docopt] +opt-level = 3 + +[profile.release.package.toml] +opt-level = 1 +overflow-checks = false diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_profile/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ + Removing toml from dependencies + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,5 @@ +[workspace] +members = [ "my-package" ] + +[replace] +"toml:0.1.0" = { path = "../toml" } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,26 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = "0.1.0" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" +toml = "0.2.3" +docopt = "0.6" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/in/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::CargoCommand; +use cargo_test_support::Project; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["--package", "my-package", "toml"]) + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ +[workspace] +members = [ "my-package" ] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = "0.1.0" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" +toml = "0.2.3" +docopt = "0.6" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/out/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/gc_replace/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ + Removing toml from dependencies + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/invalid_package_multiple/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/invalid_package_multiple/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/invalid_package_multiple/stderr.log 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/invalid_package_multiple/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -1 +1,2 @@ -error: 2 packages selected. Please specify one with `-p ` +error: `cargo remove` could not determine which package to modify. Use the `--package` option to specify a package. +available packages: dep-a, dep-b diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2,6 +2,9 @@ mod build; mod dev; mod dry_run; +mod gc_patch; +mod gc_profile; +mod gc_replace; mod invalid_arg; mod invalid_dep; mod invalid_package; @@ -22,6 +25,9 @@ mod target_build; mod target_dev; mod update_lock_file; +mod workspace; +mod workspace_non_virtual; +mod workspace_preserved; fn init_registry() { cargo_test_support::registry::init(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,5 @@ +[workspace] +members = [ "my-package" ] + +[workspace.dependencies] +semver = "0.1.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,24 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = { workspace = true } + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/in/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::CargoCommand; +use cargo_test_support::Project; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["--package", "my-package", "--build", "semver"]) + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ +[workspace] +members = [ "my-package" ] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,21 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/out/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ + Removing semver from build-dependencies + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,30 @@ +[workspace] +members = [ "my-member" ] + +[workspace.dependencies] +semver = "0.1.0" + +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = { workspace = true } + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/my-member/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/my-member/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/my-member/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/in/my-member/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,6 @@ +[package] +name = "my-member" +version = "0.1.0" +edition = "2021" + +[dependencies] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::CargoCommand; +use cargo_test_support::Project; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["--package", "my-package", "--build", "semver"]) + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,24 @@ +[workspace] +members = [ "my-member" ] + +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/my-member/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/my-member/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/my-member/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/out/my-member/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,6 @@ +[package] +name = "my-member" +version = "0.1.0" +edition = "2021" + +[dependencies] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_non_virtual/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ + Removing semver from build-dependencies + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,5 @@ +[workspace] +members = [ "my-package", "my-other-package" ] + +[workspace.dependencies] +semver = "0.1.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,22 @@ +[package] +name = "my-other-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +semver = { workspace = true } +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-other-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,24 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[build-dependencies] +semver = { workspace = true } + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/in/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,25 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::curr_dir; +use cargo_test_support::CargoCommand; +use cargo_test_support::Project; + +use crate::cargo_remove::init_registry; + +#[cargo_test] +fn case() { + init_registry(); + let project = Project::from_template(curr_dir!().join("in")); + let project_root = project.root(); + let cwd = &project_root; + + snapbox::cmd::Command::cargo_ui() + .arg("remove") + .args(["--package", "my-package", "--build", "semver"]) + .current_dir(cwd) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), &project_root); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,5 @@ +[workspace] +members = [ "my-package", "my-other-package" ] + +[workspace.dependencies] +semver = "0.1.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,22 @@ +[package] +name = "my-other-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +semver = { workspace = true } +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-other-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,21 @@ +[package] +name = "my-package" +version = "0.1.0" + +[[bin]] +name = "main" +path = "src/main.rs" + +[dependencies] +docopt = "0.6" +rustc-serialize = "0.4" +semver = "0.1" +toml = "0.1" +clippy = "0.4" + +[dev-dependencies] +regex = "0.1.1" +serde = "1.0.90" + +[features] +std = ["serde/std", "semver/std"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/out/my-package/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cargo_remove/workspace_preserved/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,2 @@ + Removing semver from build-dependencies + Updating `dummy-registry` index diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/check.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/check.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/check.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/check.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2,11 +2,12 @@ use std::fmt::{self, Write}; +use crate::messages::raw_rustc_output; use cargo_test_support::install::exe; use cargo_test_support::paths::CargoPathExt; use cargo_test_support::registry::Package; use cargo_test_support::tools; -use cargo_test_support::{basic_manifest, git, project}; +use cargo_test_support::{basic_bin_manifest, basic_manifest, git, project}; #[cargo_test] fn check_success() { @@ -1176,3 +1177,273 @@ ) .run(); } + +#[cargo_test] +fn check_fixable_warning() { + let foo = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + "#, + ) + .file("src/lib.rs", "use std::io;") + .build(); + + foo.cargo("check") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --lib -p foo` to apply 1 suggestion)") + .run(); +} + +#[cargo_test] +fn check_fixable_not_nightly() { + let foo = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + "#, + ) + .file("src/lib.rs", "use std::io;") + .build(); + + let rustc_message = raw_rustc_output(&foo, "src/lib.rs", &[]); + let expected_output = format!( + "\ +[CHECKING] foo v0.0.1 ([..]) +{}\ +[WARNING] `foo` (lib) generated 1 warning +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + rustc_message + ); + foo.cargo("check").with_stderr(expected_output).run(); +} + +#[cargo_test] +fn check_fixable_test_warning() { + let foo = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + "#, + ) + .file( + "src/lib.rs", + "\ +mod tests { + #[test] + fn t1() { + use std::io; + } +} + ", + ) + .build(); + + foo.cargo("check --all-targets") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --lib -p foo --tests` to apply 1 suggestion)") + .run(); + foo.cargo("fix --lib -p foo --tests --allow-no-vcs").run(); + assert!(!foo.read_file("src/lib.rs").contains("use std::io;")); +} + +#[cargo_test] +fn check_fixable_error_no_fix() { + let foo = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + "#, + ) + .file( + "src/lib.rs", + "use std::io;\n#[derive(Debug(x))]\nstruct Foo;", + ) + .build(); + + let rustc_message = raw_rustc_output(&foo, "src/lib.rs", &[]); + let expected_output = format!( + "\ +[CHECKING] foo v0.0.1 ([..]) +{}\ +[WARNING] `foo` (lib) generated 1 warning +[ERROR] could not compile `foo` due to previous error; 1 warning emitted +", + rustc_message + ); + foo.cargo("check") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_status(101) + .with_stderr(expected_output) + .run(); +} + +#[cargo_test] +fn check_fixable_warning_workspace() { + let p = project() + .file( + "Cargo.toml", + r#" + [workspace] + members = ["foo", "bar"] + "#, + ) + .file( + "foo/Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + "#, + ) + .file("foo/src/lib.rs", "use std::io;") + .file( + "bar/Cargo.toml", + r#" + [package] + name = "bar" + version = "0.0.1" + + [dependencies] + foo = { path = "../foo" } + "#, + ) + .file("bar/src/lib.rs", "use std::io;") + .build(); + + p.cargo("check") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --lib -p foo` to apply 1 suggestion)") + .with_stderr_contains("[..] (run `cargo fix --lib -p bar` to apply 1 suggestion)") + .run(); +} + +#[cargo_test] +fn check_fixable_example() { + let p = project() + .file("Cargo.toml", &basic_bin_manifest("foo")) + .file( + "src/main.rs", + r#" + fn hello() -> &'static str { + "hello" + } + + pub fn main() { + println!("{}", hello()) + } + "#, + ) + .file("examples/ex1.rs", "use std::fmt; fn main() {}") + .build(); + p.cargo("check --all-targets") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --example \"ex1\"` to apply 1 suggestion)") + .run(); +} + +#[cargo_test(nightly, reason = "bench")] +fn check_fixable_bench() { + let p = project() + .file("Cargo.toml", &basic_bin_manifest("foo")) + .file( + "src/main.rs", + r#" + #![feature(test)] + #[cfg(test)] + extern crate test; + + fn hello() -> &'static str { + "hello" + } + + pub fn main() { + println!("{}", hello()) + } + + #[bench] + fn bench_hello(_b: &mut test::Bencher) { + use std::io; + assert_eq!(hello(), "hello") + } + "#, + ) + .file( + "benches/bench.rs", + " + #![feature(test)] + extern crate test; + + #[bench] + fn bench(_b: &mut test::Bencher) { use std::fmt; } + ", + ) + .build(); + p.cargo("check --all-targets") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --bench \"bench\"` to apply 1 suggestion)") + .run(); +} + +#[cargo_test(nightly, reason = "bench")] +fn check_fixable_mixed() { + let p = project() + .file("Cargo.toml", &basic_bin_manifest("foo")) + .file( + "src/main.rs", + r#" + #![feature(test)] + #[cfg(test)] + extern crate test; + + fn hello() -> &'static str { + "hello" + } + + pub fn main() { + println!("{}", hello()) + } + + #[bench] + fn bench_hello(_b: &mut test::Bencher) { + use std::io; + assert_eq!(hello(), "hello") + } + #[test] + fn t1() { + use std::fmt; + } + "#, + ) + .file("examples/ex1.rs", "use std::fmt; fn main() {}") + .file( + "benches/bench.rs", + " + #![feature(test)] + extern crate test; + + #[bench] + fn bench(_b: &mut test::Bencher) { use std::fmt; } + ", + ) + .build(); + p.cargo("check --all-targets") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr_contains("[..] (run `cargo fix --bin \"foo\" --tests` to apply 2 suggestions)") + .with_stderr_contains("[..] (run `cargo fix --example \"ex1\"` to apply 1 suggestion)") + .with_stderr_contains("[..] (run `cargo fix --bench \"bench\"` to apply 1 suggestion)") + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/clean.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/clean.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/clean.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/clean.rs 2023-01-10 13:38:26.000000000 +0000 @@ -96,26 +96,26 @@ .build(); let foo_path = &p.build_dir().join("debug").join("deps"); + #[cfg(not(target_env = "msvc"))] + let file_glob = "foo-*"; + + #[cfg(target_env = "msvc")] + let file_glob = "foo.pdb"; + // Assert that build artifacts are produced p.cargo("build").run(); - assert_ne!(get_build_artifacts(foo_path).len(), 0); + assert_ne!(get_build_artifacts(foo_path, file_glob).len(), 0); // Assert that build artifacts are destroyed p.cargo("clean -p foo").run(); - assert_eq!(get_build_artifacts(foo_path).len(), 0); + assert_eq!(get_build_artifacts(foo_path, file_glob).len(), 0); } -fn get_build_artifacts(path: &PathBuf) -> Vec> { +fn get_build_artifacts(path: &PathBuf, file_glob: &str) -> Vec> { let pattern = path.to_str().expect("expected utf-8 path"); let pattern = glob::Pattern::escape(pattern); - #[cfg(not(target_env = "msvc"))] - const FILE: &str = "foo-*"; - - #[cfg(target_env = "msvc")] - const FILE: &str = "foo.pdb"; - - let path = PathBuf::from(pattern).join(FILE); + let path = PathBuf::from(pattern).join(file_glob); let path = path.to_str().expect("expected utf-8 path"); glob::glob(path) .expect("expected glob to run") @@ -124,6 +124,86 @@ } #[cargo_test] +fn clean_p_only_cleans_specified_package() { + let p = project() + .file( + "Cargo.toml", + r#" + [workspace] + members = [ + "foo", + "foo_core", + "foo-base", + ] + "#, + ) + .file("foo/Cargo.toml", &basic_manifest("foo", "0.1.0")) + .file("foo/src/lib.rs", "//! foo") + .file("foo_core/Cargo.toml", &basic_manifest("foo_core", "0.1.0")) + .file("foo_core/src/lib.rs", "//! foo_core") + .file("foo-base/Cargo.toml", &basic_manifest("foo-base", "0.1.0")) + .file("foo-base/src/lib.rs", "//! foo-base") + .build(); + + let fingerprint_path = &p.build_dir().join("debug").join(".fingerprint"); + + p.cargo("build -p foo -p foo_core -p foo-base").run(); + + let mut fingerprint_names = get_fingerprints_without_hashes(fingerprint_path); + + // Artifacts present for all after building + assert!(fingerprint_names.iter().any(|e| e == "foo")); + let num_foo_core_artifacts = fingerprint_names + .iter() + .filter(|&e| e == "foo_core") + .count(); + assert_ne!(num_foo_core_artifacts, 0); + let num_foo_base_artifacts = fingerprint_names + .iter() + .filter(|&e| e == "foo-base") + .count(); + assert_ne!(num_foo_base_artifacts, 0); + + p.cargo("clean -p foo").run(); + + fingerprint_names = get_fingerprints_without_hashes(fingerprint_path); + + // Cleaning `foo` leaves artifacts for the others + assert!(!fingerprint_names.iter().any(|e| e == "foo")); + assert_eq!( + fingerprint_names + .iter() + .filter(|&e| e == "foo_core") + .count(), + num_foo_core_artifacts, + ); + assert_eq!( + fingerprint_names + .iter() + .filter(|&e| e == "foo-base") + .count(), + num_foo_core_artifacts, + ); +} + +fn get_fingerprints_without_hashes(fingerprint_path: &Path) -> Vec { + std::fs::read_dir(fingerprint_path) + .expect("Build dir should be readable") + .filter_map(|entry| entry.ok()) + .map(|entry| { + let name = entry.file_name(); + let name = name + .into_string() + .expect("fingerprint name should be UTF-8"); + name.rsplit_once('-') + .expect("Name should contain at least one hyphen") + .0 + .to_owned() + }) + .collect() +} + +#[cargo_test] fn clean_release() { let p = project() .file( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/credential_process.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/credential_process.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/credential_process.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/credential_process.rs 2023-01-10 13:38:26.000000000 +0000 @@ -38,7 +38,8 @@ .with_stderr( "\ [UPDATING] [..] -[ERROR] no upload token found, please run `cargo login` or pass `--token` +[ERROR] no token found, please run `cargo login` +or use environment variable CARGO_REGISTRY_TOKEN ", ) .run(); @@ -57,7 +58,8 @@ .with_stderr( "\ [UPDATING] [..] -[ERROR] no upload token found, please run `cargo login` or pass `--token` +[ERROR] no token found for `alternative`, please run `cargo login --registry alternative` +or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN ", ) .run(); @@ -109,8 +111,8 @@ .with_status(101) .with_stderr( "\ -[ERROR] both `registries.alternative.token` and `registries.alternative.credential-process` \ -were specified in the config\n\ +[UPDATING] [..] +[ERROR] both `token` and `credential-process` were specified in the config for registry `alternative`. Only one of these values may be set, remove one or the other to proceed. ", ) @@ -134,6 +136,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", @@ -208,6 +211,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", @@ -236,7 +240,7 @@ .with_status(101) .with_stderr( "\ -[UPDATING] [..] +[UPDATING] crates.io index [ERROR] credential process `false` cannot be used to log in, \ the credential-process configuration value must pass the \ `{action}` argument in the config to support this command @@ -269,20 +273,19 @@ .file("Cargo.toml", &basic_manifest("test-cred", "1.0.0")) .file( "src/main.rs", - &r#" + r#" use std::io::Read; - fn main() { - assert_eq!(std::env::var("CARGO_REGISTRY_NAME").unwrap(), "crates-io"); - assert_eq!(std::env::var("CARGO_REGISTRY_API_URL").unwrap(), "__API__"); + fn main() {{ + assert_eq!(std::env::var("CARGO_REGISTRY_NAME_OPT").unwrap(), "crates-io"); + assert_eq!(std::env::var("CARGO_REGISTRY_INDEX_URL").unwrap(), "https://github.com/rust-lang/crates.io-index"); assert_eq!(std::env::args().skip(1).next().unwrap(), "store"); let mut buffer = String::new(); std::io::stdin().read_to_string(&mut buffer).unwrap(); assert_eq!(buffer, "abcdefg\n"); std::fs::write("token-store", buffer).unwrap(); - } - "# - .replace("__API__", server.api_url().as_str()), + }} + "#, ) .build(); cred_proj.cargo("build").run(); @@ -327,16 +330,16 @@ .file("Cargo.toml", &basic_manifest("test-cred", "1.0.0")) .file( "src/main.rs", - r#" + r#" use std::io::Read; - fn main() { - assert_eq!(std::env::var("CARGO_REGISTRY_NAME").unwrap(), "crates-io"); + fn main() {{ + assert_eq!(std::env::var("CARGO_REGISTRY_NAME_OPT").unwrap(), "crates-io"); + assert_eq!(std::env::var("CARGO_REGISTRY_INDEX_URL").unwrap(), "https://github.com/rust-lang/crates.io-index"); assert_eq!(std::env::args().skip(1).next().unwrap(), "erase"); std::fs::write("token-store", "").unwrap(); - eprintln!("token for `{}` has been erased!", - std::env::var("CARGO_REGISTRY_NAME").unwrap()); - } + eprintln!("token for `crates-io` has been erased!") + }} "#, ) .build(); @@ -360,9 +363,8 @@ .replace_crates_io(server.index_url()) .with_stderr( "\ -[UPDATING] [..] token for `crates-io` has been erased! -[LOGOUT] token for `crates.io` has been removed from local storage +[LOGOUT] token for `crates-io` has been removed from local storage ", ) .run(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cross_publish.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cross_publish.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/cross_publish.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/cross_publish.rs 2023-01-10 13:38:26.000000000 +0000 @@ -46,6 +46,7 @@ [VERIFYING] foo v0.0.0 ([CWD]) [COMPILING] foo v0.0.0 ([CWD]/target/package/foo-0.0.0) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -109,6 +110,7 @@ [VERIFYING] foo v0.0.0 ([CWD]) [COMPILING] foo v0.0.0 ([CWD]/target/package/foo-0.0.0) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] [UPLOADING] foo v0.0.0 ([CWD]) [UPDATING] crates.io index ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/doc.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/doc.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/doc.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/doc.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2343,265 +2343,6 @@ assert!(real_doc.join("somefile").exists()); } -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_basic() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.0.1" - authors = [] - "#, - ) - .file("examples/ex.rs", "fn main() { foo::foo(); }") - .file("src/lib.rs", "pub fn foo() {}\npub fn bar() { foo(); }") - .build(); - - p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .with_stderr( - "\ -[..] foo v0.0.1 ([CWD]) -[..] foo v0.0.1 ([CWD]) -[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] -", - ) - .run(); - - let doc_html = p.read_file("target/doc/foo/fn.foo.html"); - assert!(doc_html.contains("Examples found in repository")); - assert!(doc_html.contains("More examples")); - - // Ensure that the reverse-dependency has its sources generated - assert!(p.build_dir().join("doc/src/ex/ex.rs.html").exists()); -} - -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_avoid_build_script_cycle() { - let p = project() - // package with build dependency - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.0.1" - authors = [] - links = "foo" - - [workspace] - members = ["bar"] - - [build-dependencies] - bar = {path = "bar"} - "#, - ) - .file("src/lib.rs", "") - .file("build.rs", "fn main(){}") - // dependency - .file( - "bar/Cargo.toml", - r#" - [package] - name = "bar" - version = "0.0.1" - authors = [] - links = "bar" - "#, - ) - .file("bar/src/lib.rs", "") - .file("bar/build.rs", "fn main(){}") - .build(); - - p.cargo("doc --all -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .run(); -} - -// FIXME: This test is broken with latest nightly 2022-08-02. -// The example is calling a function from a proc-macro, but proc-macros don't -// export functions. It is not clear what this test is trying to exercise. -// #[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -#[ignore = "broken, needs fixing"] -#[cargo_test] -fn scrape_examples_complex_reverse_dependencies() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.0.1" - authors = [] - - [dev-dependencies] - a = {path = "a", features = ["feature"]} - b = {path = "b"} - - [workspace] - members = ["b"] - "#, - ) - .file("src/lib.rs", "") - .file("examples/ex.rs", "fn main() { a::f(); }") - .file( - "a/Cargo.toml", - r#" - [package] - name = "a" - version = "0.0.1" - authors = [] - - [lib] - proc-macro = true - - [dependencies] - b = {path = "../b"} - - [features] - feature = [] - "#, - ) - .file("a/src/lib.rs", "#[cfg(feature)] pub fn f();") - .file( - "b/Cargo.toml", - r#" - [package] - name = "b" - version = "0.0.1" - authors = [] - "#, - ) - .file("b/src/lib.rs", "") - .build(); - - p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .run(); -} - -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_crate_with_dash() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "da-sh" - version = "0.0.1" - authors = [] - "#, - ) - .file("src/lib.rs", "pub fn foo() {}") - .file("examples/a.rs", "fn main() { da_sh::foo(); }") - .build(); - - p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .run(); - - let doc_html = p.read_file("target/doc/da_sh/fn.foo.html"); - assert!(doc_html.contains("Examples found in repository")); -} - -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_missing_flag() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "1.2.4" - authors = [] - "#, - ) - .file("src/lib.rs", "//! These are the docs!") - .build(); - p.cargo("doc -Zrustdoc-scrape-examples") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .with_status(101) - .with_stderr("error: -Z rustdoc-scrape-examples must take [..] an argument") - .run(); -} - -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_configure_profile() { - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "foo" - version = "0.0.1" - authors = [] - - [profile.dev] - panic = "abort" - "#, - ) - .file("examples/ex.rs", "fn main() { foo::foo(); }") - .file("src/lib.rs", "pub fn foo() {}\npub fn bar() { foo(); }") - .build(); - - p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .run(); - - let doc_html = p.read_file("target/doc/foo/fn.foo.html"); - assert!(doc_html.contains("Examples found in repository")); - assert!(doc_html.contains("More examples")); -} - -#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] -fn scrape_examples_issue_10545() { - let p = project() - .file( - "Cargo.toml", - r#" - [workspace] - resolver = "2" - members = ["a", "b"] - "#, - ) - .file( - "a/Cargo.toml", - r#" - [package] - name = "a" - version = "0.0.1" - authors = [] - edition = "2021" - - [features] - default = ["foo"] - foo = [] - "#, - ) - .file("a/src/lib.rs", "") - .file( - "b/Cargo.toml", - r#" - [package] - name = "b" - version = "0.0.1" - authors = [] - edition = "2021" - - [lib] - proc-macro = true - "#, - ) - .file("b/src/lib.rs", "") - .build(); - - p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples=all") - .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) - .run(); -} - #[cargo_test] fn lib_before_bin() { // Checks that the library is documented before the binary. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/docscrape.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/docscrape.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/docscrape.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/docscrape.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,582 @@ +//! Tests for the `cargo doc` command with `-Zrustdoc-scrape-examples`. + +use cargo_test_support::project; + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn basic() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + "#, + ) + .file("examples/ex.rs", "fn main() { foo::foo(); }") + .file("src/lib.rs", "pub fn foo() {}\npub fn bar() { foo(); }") + .build(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[CHECKING] foo v0.0.1 ([CWD]) +[SCRAPING] foo v0.0.1 ([CWD]) +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); + + p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr("[FINISHED] [..]") + .run(); + + let doc_html = p.read_file("target/doc/foo/fn.foo.html"); + assert!(doc_html.contains("Examples found in repository")); + assert!(doc_html.contains("More examples")); + + // Ensure that the reverse-dependency has its sources generated + assert!(p.build_dir().join("doc/src/ex/ex.rs.html").exists()); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn avoid_build_script_cycle() { + let p = project() + // package with build dependency + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + links = "foo" + + [workspace] + members = ["bar"] + + [build-dependencies] + bar = {path = "bar"} + "#, + ) + .file("src/lib.rs", "") + .file("build.rs", "fn main(){}") + // dependency + .file( + "bar/Cargo.toml", + r#" + [package] + name = "bar" + version = "0.0.1" + authors = [] + links = "bar" + "#, + ) + .file("bar/src/lib.rs", "") + .file("bar/build.rs", "fn main(){}") + .build(); + + p.cargo("doc --workspace -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn complex_reverse_dependencies() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [dev-dependencies] + a = {path = "a", features = ["feature"]} + b = {path = "b"} + + [workspace] + members = ["b"] + "#, + ) + .file("src/lib.rs", "") + .file("examples/ex.rs", "fn main() {}") + .file( + "a/Cargo.toml", + r#" + [package] + name = "a" + version = "0.0.1" + authors = [] + + [lib] + proc-macro = true + + [dependencies] + b = {path = "../b"} + + [features] + feature = [] + "#, + ) + .file("a/src/lib.rs", "") + .file( + "b/Cargo.toml", + r#" + [package] + name = "b" + version = "0.0.1" + authors = [] + "#, + ) + .file("b/src/lib.rs", "") + .build(); + + p.cargo("doc --workspace --examples -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn crate_with_dash() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "da-sh" + version = "0.0.1" + authors = [] + "#, + ) + .file("src/lib.rs", "pub fn foo() {}") + .file("examples/a.rs", "fn main() { da_sh::foo(); }") + .build(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); + + let doc_html = p.read_file("target/doc/da_sh/fn.foo.html"); + assert!(doc_html.contains("Examples found in repository")); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn configure_target() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [lib] + doc-scrape-examples = false + + [[bin]] + name = "a_bin" + doc-scrape-examples = true + "#, + ) + .file( + "src/lib.rs", + "pub fn foo() {} fn lib_must_not_appear() { foo(); }", + ) + .file("examples/a.rs", "fn example_must_appear() { foo::foo(); }") + .file( + "src/bin/a_bin.rs", + "fn bin_must_appear() { foo::foo(); } fn main(){}", + ) + .build(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); + + let doc_html = p.read_file("target/doc/foo/fn.foo.html"); + assert!(!doc_html.contains("lib_must_not_appear")); + assert!(doc_html.contains("example_must_appear")); + assert!(doc_html.contains("bin_must_appear")); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn configure_profile_issue_10500() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [profile.dev] + panic = "abort" + "#, + ) + .file("examples/ex.rs", "fn main() { foo::foo(); }") + .file("src/lib.rs", "pub fn foo() {}\npub fn bar() { foo(); }") + .build(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); + + let doc_html = p.read_file("target/doc/foo/fn.foo.html"); + assert!(doc_html.contains("Examples found in repository")); + assert!(doc_html.contains("More examples")); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn issue_10545() { + let p = project() + .file( + "Cargo.toml", + r#" + [workspace] + resolver = "2" + members = ["a", "b"] + "#, + ) + .file( + "a/Cargo.toml", + r#" + [package] + name = "a" + version = "0.0.1" + authors = [] + edition = "2021" + + [features] + default = ["foo"] + foo = [] + "#, + ) + .file("a/src/lib.rs", "") + .file( + "b/Cargo.toml", + r#" + [package] + name = "b" + version = "0.0.1" + authors = [] + edition = "2021" + + [lib] + proc-macro = true + "#, + ) + .file("b/src/lib.rs", "") + .build(); + + p.cargo("doc --workspace -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn cache() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + "#, + ) + .file("examples/ex.rs", "fn main() { foo::foo(); }") + .file("src/lib.rs", "pub fn foo() {}\npub fn bar() { foo(); }") + .build(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[CHECKING] foo v0.0.1 ([CWD]) +[SCRAPING] foo v0.0.1 ([CWD]) +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); + + p.cargo("doc -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +", + ) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn no_fail_bad_lib() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + "#, + ) + .file("src/lib.rs", "pub fn foo() { CRASH_THE_BUILD() }") + .build(); + + p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[SCRAPING] foo v0.0.1 ([CWD]) +warning: failed to scan lib in package `foo` for example code usage + Try running with `--verbose` to see the error message. + If this example should not be scanned, consider adding `doc-scrape-examples = false` to the `[[example]]` definition in Cargo.toml +warning: `foo` (lib) generated 1 warning +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn no_fail_bad_example() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + "#, + ) + .file("examples/ex1.rs", "DOES NOT COMPILE") + .file("examples/ex2.rs", "fn main() { foo::foo(); }") + .file("src/lib.rs", "pub fn foo(){}") + .build(); + + p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[CHECKING] foo v0.0.1 ([CWD]) +[SCRAPING] foo v0.0.1 ([CWD]) +warning: failed to scan example \"ex1\" in package `foo` for example code usage + Try running with `--verbose` to see the error message. + If this example should not be scanned, consider adding `doc-scrape-examples = false` to the `[[example]]` definition in Cargo.toml +warning: `foo` (example \"ex1\") generated 1 warning +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); + + p.cargo("clean").run(); + + p.cargo("doc -v -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr_unordered( + "\ +[CHECKING] foo v0.0.1 ([CWD]) +[RUNNING] `rustc --crate-name foo[..] +[SCRAPING] foo v0.0.1 ([CWD]) +[RUNNING] `rustdoc[..] --crate-name ex1[..] +[RUNNING] `rustdoc[..] --crate-name ex2[..] +[RUNNING] `rustdoc[..] --crate-name foo[..] +error: expected one of `!` or `::`, found `NOT` + --> examples/ex1.rs:1:6 + | +1 | DOES NOT COMPILE + | ^^^ expected one of `!` or `::` + +[DOCUMENTING] foo v0.0.1 ([CWD]) +[RUNNING] `rustdoc[..] --crate-name foo[..] +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); + + let doc_html = p.read_file("target/doc/foo/fn.foo.html"); + assert!(doc_html.contains("Examples found in repository")); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn no_scrape_with_dev_deps() { + // Tests that a crate with dev-dependencies does not have its examples + // scraped unless explicitly prompted to check them. See + // `CompileFilter::refine_for_docscrape` for details on why. + + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [lib] + doc-scrape-examples = false + + [dev-dependencies] + a = {path = "a"} + "#, + ) + .file("src/lib.rs", "") + .file("examples/ex.rs", "fn main() { a::f(); }") + .file( + "a/Cargo.toml", + r#" + [package] + name = "a" + version = "0.0.1" + authors = [] + "#, + ) + .file("a/src/lib.rs", "pub fn f() {}") + .build(); + + // If --examples is not provided, then the example is never scanned. + p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr( + "\ +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); + + // If --examples is provided, then the bad example is scanned and ignored. + p.cargo("doc --examples -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr_unordered( + "\ +[CHECKING] a v0.0.1 ([CWD]/a) +[CHECKING] foo v0.0.1 ([CWD]) +[DOCUMENTING] a v0.0.1 ([CWD]/a) +[SCRAPING] foo v0.0.1 ([CWD]) +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn use_dev_deps_if_explicitly_enabled() { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [lib] + doc-scrape-examples = false + + [[example]] + name = "ex" + doc-scrape-examples = true + + [dev-dependencies] + a = {path = "a"} + "#, + ) + .file("src/lib.rs", "") + .file("examples/ex.rs", "fn main() { a::f(); }") + .file( + "a/Cargo.toml", + r#" + [package] + name = "a" + version = "0.0.1" + authors = [] + "#, + ) + .file("a/src/lib.rs", "pub fn f() {}") + .build(); + + // If --examples is not provided, then the example is never scanned. + p.cargo("doc -Zunstable-options -Z rustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .with_stderr_unordered( + "\ +[CHECKING] foo v0.0.1 ([CWD]) +[CHECKING] a v0.0.1 ([CWD]/a) +[SCRAPING] foo v0.0.1 ([CWD]) +[DOCUMENTING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]", + ) + .run(); +} + +#[cargo_test(nightly, reason = "rustdoc scrape examples flags are unstable")] +fn only_scrape_documented_targets() { + // package bar has doc = false and should not be eligible for documtation. + let run_with_config = |config: &str, should_scrape: bool| { + let p = project() + .file( + "Cargo.toml", + &format!( + r#" + [package] + name = "bar" + version = "0.0.1" + authors = [] + + [lib] + {config} + + [workspace] + members = ["foo"] + + [dependencies] + foo = {{ path = "foo" }} + "# + ), + ) + .file("src/lib.rs", "pub fn bar() { foo::foo(); }") + .file( + "foo/Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + "#, + ) + .file("foo/src/lib.rs", "pub fn foo() {}") + .build(); + + p.cargo("doc --workspace -Zunstable-options -Zrustdoc-scrape-examples") + .masquerade_as_nightly_cargo(&["rustdoc-scrape-examples"]) + .run(); + + let doc_html = p.read_file("target/doc/foo/fn.foo.html"); + let example_found = doc_html.contains("Examples found in repository"); + if should_scrape { + assert!(example_found); + } else { + assert!(!example_found); + } + }; + + // By default, bar should be scraped. + run_with_config("", true); + // If bar isn't supposed to be documented, then it is not eligible + // for scraping. + run_with_config("doc = false", false); + // But if the user explicitly says bar should be scraped, then it should + // be scraped. + run_with_config("doc = false\ndoc-scrape-examples = true", true); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/features2.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/features2.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/features2.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/features2.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2472,3 +2472,74 @@ .with_stdout("it works") .run(); } + +#[cargo_test] +fn dep_with_optional_host_deps_activated() { + // To prevent regression like rust-lang/cargo#11330 + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + edition = "2021" + + [dependencies] + serde = { path = "serde", features = ["derive", "build"] } + "#, + ) + .file("src/lib.rs", "") + .file( + "serde/Cargo.toml", + r#" + [package] + name = "serde" + version = "0.1.0" + edition = "2021" + + [dependencies] + serde_derive = { path = "../serde_derive", optional = true } + + [build-dependencies] + serde_build = { path = "../serde_build", optional = true } + + [features] + derive = ["dep:serde_derive"] + build = ["dep:serde_build"] + "#, + ) + .file("serde/src/lib.rs", "") + .file("serde/build.rs", "fn main() {}") + .file( + "serde_derive/Cargo.toml", + r#" + [package] + name = "serde_derive" + version = "0.1.0" + edition = "2021" + + [lib] + proc-macro = true + "#, + ) + .file("serde_derive/src/lib.rs", "") + .file( + "serde_build/Cargo.toml", + &basic_manifest("serde_build", "0.1.0"), + ) + .file("serde_build/src/lib.rs", "") + .build(); + + p.cargo("check") + .with_stderr( + "\ +[COMPILING] serde_build v0.1.0 ([CWD]/serde_build) +[COMPILING] serde_derive v0.1.0 ([CWD]/serde_derive) +[COMPILING] serde v0.1.0 ([CWD]/serde) +[CHECKING] foo v0.1.0 ([CWD]) +[FINISHED] dev [..] +", + ) + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/features_namespaced.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/features_namespaced.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/features_namespaced.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/features_namespaced.rs 2023-01-10 13:38:26.000000000 +0000 @@ -902,6 +902,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", @@ -1029,6 +1030,7 @@ [VERIFYING] foo v0.1.0 [..] [COMPILING] foo v0.1.0 [..] [FINISHED] [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/fix.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/fix.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/fix.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/fix.rs 2023-01-10 13:38:26.000000000 +0000 @@ -2,7 +2,7 @@ use cargo::core::Edition; use cargo_test_support::compare::assert_match_exact; -use cargo_test_support::git; +use cargo_test_support::git::{self, init}; use cargo_test_support::paths::{self, CargoPathExt}; use cargo_test_support::registry::{Dependency, Package}; use cargo_test_support::tools; @@ -772,6 +772,32 @@ } #[cargo_test] +fn errors_about_untracked_files() { + let mut git_project = project().at("foo"); + git_project = git_project.file("src/lib.rs", "pub fn foo() {}"); + let p = git_project.build(); + let _ = init(&p.root()); + + p.cargo("fix") + .with_status(101) + .with_stderr( + "\ +error: the working directory of this package has uncommitted changes, \ +and `cargo fix` can potentially perform destructive changes; if you'd \ +like to suppress this error pass `--allow-dirty`, `--allow-staged`, or \ +commit the changes to these files: + + * Cargo.toml (dirty) + * src/ (dirty) + + +", + ) + .run(); + p.cargo("fix --allow-dirty").run(); +} + +#[cargo_test] fn does_not_warn_about_clean_working_directory() { let p = git::new("foo", |p| p.file("src/lib.rs", "pub fn foo() {}")); p.cargo("fix").run(); @@ -1405,7 +1431,7 @@ let p = git::new("foo", |project| { project .file("src/lib.rs", "") - .file(".gitignore", "foo\ninner\n") + .file(".gitignore", "foo\ninner\nCargo.lock\ntarget\n") .file("inner/file", "") }); @@ -1715,7 +1741,7 @@ "src/lib.rs", r#" use proc_macro::*; - + #[proc_macro] pub fn foo(_input: TokenStream) -> TokenStream { let output = std::process::Command::new(env!("CARGO")) @@ -1725,7 +1751,7 @@ eprintln!("{}", std::str::from_utf8(&output.stderr).unwrap()); println!("{}", std::str::from_utf8(&output.stdout).unwrap()); "".parse().unwrap() - } + } "#, ) .file( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/git_gc.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/git_gc.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/git_gc.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/git_gc.rs 2023-01-10 13:38:26.000000000 +0000 @@ -11,7 +11,7 @@ use url::Url; -fn find_index() -> PathBuf { +pub fn find_index() -> PathBuf { let dir = paths::home().join(".cargo/registry/index"); dir.read_dir().unwrap().next().unwrap().unwrap().path() } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/git.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/git.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/git.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/git.rs 2023-01-10 13:38:26.000000000 +0000 @@ -10,6 +10,7 @@ use std::thread; use cargo_test_support::paths::{self, CargoPathExt}; +use cargo_test_support::registry::Package; use cargo_test_support::{basic_lib_manifest, basic_manifest, git, main_file, path2url, project}; use cargo_test_support::{sleep_ms, t, Project}; @@ -3619,3 +3620,35 @@ e.run(); assert!(ok.exists()); } + +#[cargo_test] +fn cleans_temp_pack_files() { + // Checks that cargo removes temp files left by libgit2 when it is + // interrupted (see clean_repo_temp_files). + Package::new("bar", "1.0.0").publish(); + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + + [dependencies] + bar = "1.0" + "#, + ) + .file("src/lib.rs", "") + .build(); + p.cargo("fetch").run(); + // Simulate what happens when libgit2 is interrupted while indexing a pack file. + let tmp_path = super::git_gc::find_index().join(".git/objects/pack/pack_git2_91ab40da04fdc2e7"); + fs::write(&tmp_path, "test").unwrap(); + let mut perms = fs::metadata(&tmp_path).unwrap().permissions(); + perms.set_readonly(true); + fs::set_permissions(&tmp_path, perms).unwrap(); + + // Trigger an index update. + p.cargo("generate-lockfile").run(); + assert!(!tmp_path.exists()); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/inheritable_workspace_fields.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/inheritable_workspace_fields.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/inheritable_workspace_fields.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/inheritable_workspace_fields.rs 2023-01-10 13:38:26.000000000 +0000 @@ -160,6 +160,15 @@ .file("bar.txt", "") // should be included when packaging .build(); + // HACK: Inject `foo` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("foo", "1.2.3") + .file("src/lib.rs", "") + .publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .run(); @@ -287,6 +296,16 @@ assert!(lockfile.contains("dep")); assert!(lockfile.contains("dep-dev")); assert!(lockfile.contains("dep-build")); + + // HACK: Inject `bar` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("bar", "0.2.0") + .file("src/lib.rs", "") + .publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .run(); @@ -411,6 +430,16 @@ p.cargo("check").run(); let lockfile = p.read_lockfile(); assert!(lockfile.contains("dep")); + + // HACK: Inject `bar` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("bar", "0.2.0") + .file("src/lib.rs", "") + .publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .run(); @@ -628,6 +657,15 @@ .file("bar/bar.txt", "") // should be included when packaging .build(); + // HACK: Inject `bar` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("bar", "1.2.3") + .file("src/lib.rs", "") + .publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .cwd("bar") @@ -763,6 +801,16 @@ assert!(lockfile.contains("dep")); assert!(lockfile.contains("dep-dev")); assert!(lockfile.contains("dep-build")); + + // HACK: Inject `bar` directly into the index so `publish` won't block for it to be in + // the index. + // + // This is to ensure we can verify the Summary we post to the registry as doing so precludes + // the registry from processing the publish. + Package::new("bar", "0.2.0") + .file("src/lib.rs", "") + .publish(); + p.cargo("publish") .replace_crates_io(registry.index_url()) .cwd("bar") diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/mod.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -28,6 +28,8 @@ mod multibin_project_name_clash; #[cfg(not(windows))] mod no_filename; +#[cfg(unix)] +mod path_contains_separator; mod pijul_autodetect; mod reserved_name; mod simple_bin; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/mod.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,26 @@ +use cargo_test_support::compare::assert_ui; +use cargo_test_support::prelude::*; +use cargo_test_support::{t, Project}; + +use cargo_test_support::curr_dir; + +#[cargo_test] +fn path_contains_separator() { + let project = Project::from_template(curr_dir!().join("in")); + let project_root = &project.root().join("test:ing"); + + if !project_root.exists() { + t!(std::fs::create_dir(&project_root)); + } + + snapbox::cmd::Command::cargo_ui() + .arg_line("init --bin --vcs none --edition 2015 --name testing") + .current_dir(project_root) + .assert() + .success() + .stdout_matches_path(curr_dir!().join("stdout.log")) + .stderr_matches_path(curr_dir!().join("stderr.log")); + + assert_ui().subset_matches(curr_dir!().join("out"), project_root); + assert!(!project_root.join(".gitignore").is_file()); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/Cargo.toml 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,8 @@ +[package] +name = "testing" +version = "0.1.0" +edition = "2015" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/src/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/src/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/src/main.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/out/src/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/stderr.log cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/stderr.log --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/stderr.log 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/init/path_contains_separator/stderr.log 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,3 @@ +warning: the path `[ROOT]/case/test:ing/.` contains invalid PATH characters (usually `:`, `;`, or `"`) +It is recommended to use a different name to avoid problems. + Created binary (application) package diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/install.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/install.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/install.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/install.rs 2023-01-10 13:38:26.000000000 +0000 @@ -327,11 +327,9 @@ cargo_process("install .") .with_status(101) .with_stderr( - "\ -error: To install the binaries for the package in current working \ -directory use `cargo install --path .`. Use `cargo build` if you \ -want to simply build the package. -", + "error: To install the binaries for the package in current working \ + directory use `cargo install --path .`. \n\ + Use `cargo build` if you want to simply build the package.", ) .run(); } @@ -2031,3 +2029,41 @@ ) .run(); } + +#[cargo_test] +fn no_auto_fix_note() { + Package::new("auto_fix", "0.0.1") + .file("src/lib.rs", "use std::io;") + .file( + "src/main.rs", + &format!("extern crate {}; use std::io; fn main() {{}}", "auto_fix"), + ) + .publish(); + + // This should not contain a suggestion to run `cargo fix` + // + // This is checked by matching the full output as `with_stderr_does_not_contain` + // can be brittle + cargo_process("install auto_fix") + .masquerade_as_nightly_cargo(&["auto-fix note"]) + .with_stderr( + "\ +[UPDATING] `[..]` index +[DOWNLOADING] crates ... +[DOWNLOADED] auto_fix v0.0.1 (registry [..]) +[INSTALLING] auto_fix v0.0.1 +[COMPILING] auto_fix v0.0.1 +[FINISHED] release [optimized] target(s) in [..] +[INSTALLING] [CWD]/home/.cargo/bin/auto_fix[EXE] +[INSTALLED] package `auto_fix v0.0.1` (executable `auto_fix[EXE]`) +[WARNING] be sure to add `[..]` to your PATH to be able to run the installed binaries +", + ) + .run(); + assert_has_installed_exe(cargo_home(), "auto_fix"); + + cargo_process("uninstall auto_fix") + .with_stderr("[REMOVING] [CWD]/home/.cargo/bin/auto_fix[EXE]") + .run(); + assert_has_not_installed_exe(cargo_home(), "auto_fix"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/login.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/login.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/login.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/login.rs 2023-01-10 13:38:26.000000000 +0000 @@ -101,7 +101,7 @@ cargo_process("login") .replace_crates_io(registry.index_url()) - .with_stdout("please paste the API Token found on [..]/me below") + .with_stdout("please paste the token found on [..]/me below") .with_stdin("\t\n") .with_stderr( "\ diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/logout.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/logout.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/logout.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/logout.rs 2023-01-10 13:38:26.000000000 +0000 @@ -46,14 +46,16 @@ } fn simple_logout_test(registry: &TestRegistry, reg: Option<&str>, flag: &str) { - let msg = reg.unwrap_or("crates.io"); + let msg = reg.unwrap_or("crates-io"); check_config_token(reg, true); - cargo_process(&format!("logout -Z unstable-options {}", flag)) + let mut cargo = cargo_process(&format!("logout -Z unstable-options {}", flag)); + if reg.is_none() { + cargo.replace_crates_io(registry.index_url()); + } + cargo .masquerade_as_nightly_cargo(&["cargo-logout"]) - .replace_crates_io(registry.index_url()) .with_stderr(&format!( "\ -[UPDATING] [..] [LOGOUT] token for `{}` has been removed from local storage ", msg @@ -61,9 +63,12 @@ .run(); check_config_token(reg, false); - cargo_process(&format!("logout -Z unstable-options {}", flag)) + let mut cargo = cargo_process(&format!("logout -Z unstable-options {}", flag)); + if reg.is_none() { + cargo.replace_crates_io(registry.index_url()); + } + cargo .masquerade_as_nightly_cargo(&["cargo-logout"]) - .replace_crates_io(registry.index_url()) .with_stderr(&format!( "\ [LOGOUT] not currently logged in to `{}` diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/lto.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/lto.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/lto.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/lto.rs 2023-01-10 13:38:26.000000000 +0000 @@ -625,6 +625,10 @@ } #[cargo_test] +#[cfg_attr( + all(target_os = "windows", target_env = "gnu"), + ignore = "thinLTO is broken. Tracking in rust-lang/rust#104852" +)] fn test_profile() { Package::new("bar", "0.0.1") .file("src/lib.rs", "pub fn foo() -> i32 { 123 } ") diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/main.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/main.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/main.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/main.rs 2023-01-10 13:38:26.000000000 +0000 @@ -45,6 +45,7 @@ mod dep_info; mod directory; mod doc; +mod docscrape; mod edition; mod error; mod features; @@ -105,6 +106,7 @@ mod publish_lockfile; mod read_manifest; mod registry; +mod registry_auth; mod rename_deps; mod replace; mod required_features; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/new.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/new.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/new.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/new.rs 2023-01-10 13:38:26.000000000 +0000 @@ -509,3 +509,37 @@ let head = repo.find_reference("HEAD").unwrap(); assert_eq!(head.symbolic_target().unwrap(), "refs/heads/hello"); } + +#[cargo_test] +fn non_utf8_str_in_ignore_file() { + let gitignore = paths::home().join(".gitignore"); + File::create(gitignore).unwrap(); + + fs::write(paths::home().join(".gitignore"), &[0xFF, 0xFE]).unwrap(); + + cargo_process(&format!("init {} --vcs git", paths::home().display())) + .with_status(101) + .with_stderr( + "\ +error: Failed to create package `home` at `[..]` + +Caused by: + Character at line 0 is invalid. Cargo only supports UTF-8. +", + ) + .run(); +} + +#[cfg(unix)] +#[cargo_test] +fn path_with_invalid_character() { + cargo_process("new --name testing test:ing") + .with_stderr( + "\ +[WARNING] the path `[CWD]/test:ing` contains invalid PATH characters (usually `:`, `;`, or `\"`) +It is recommended to use a different name to avoid problems. +[CREATED] binary (application) `testing` package +", + ) + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/package_features.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/package_features.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/package_features.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/package_features.rs 2023-01-10 13:38:26.000000000 +0000 @@ -468,9 +468,7 @@ p.cargo("build -p dep --features f1") .with_status(101) - .with_stderr( - "[UPDATING][..]\n[ERROR] cannot specify features for packages outside of workspace", - ) + .with_stderr("[ERROR] cannot specify features for packages outside of workspace") .run(); p.cargo("build -p dep --all-features") @@ -486,6 +484,7 @@ p.cargo("build -p dep") .with_stderr( "\ +[UPDATING] [..] [DOWNLOADING] [..] [DOWNLOADED] [..] [COMPILING] dep [..] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/package.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/package.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/package.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/package.rs 2023-01-10 13:38:26.000000000 +0000 @@ -39,6 +39,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -77,6 +78,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -103,6 +105,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -129,6 +132,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -158,6 +162,7 @@ [ARCHIVING] Cargo.toml [ARCHIVING] Cargo.toml.orig [ARCHIVING] src/main.rs +[PACKAGED] 5 files, [..] ([..] compressed) ", ) .run(); @@ -198,6 +203,7 @@ [ARCHIVING] Cargo.toml [ARCHIVING] Cargo.toml.orig [ARCHIVING] src/lib.rs +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -239,6 +245,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -488,6 +495,7 @@ [ARCHIVING] some_dir/file_deep_4 [ARCHIVING] some_dir/file_deep_5 [ARCHIVING] src/main.rs +[PACKAGED] 15 files, [..] ([..] compressed) ", ) .run(); @@ -555,6 +563,7 @@ [ARCHIVING] Cargo.toml.orig [ARCHIVING] foo.txt [ARCHIVING] src/main.rs +[PACKAGED] 7 files, [..] ([..] compressed) ", ) .run(); @@ -708,6 +717,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -775,6 +785,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 5 files, [..] ([..] compressed) ", ) .run(); @@ -1788,6 +1799,7 @@ Please update the license-file setting in the manifest at `[..]/foo/Cargo.toml` This may become a hard error in the future. [PACKAGING] foo v1.0.0 ([..]/foo) +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -1835,6 +1847,7 @@ [ARCHIVING] Cargo.toml.orig [ARCHIVING] src/lib.rs [ARCHIVING] subdir/LICENSE +[PACKAGED] 5 files, [..] ([..] compressed) ", ) .run(); @@ -1891,6 +1904,7 @@ [VERIFYING] foo v1.0.0 [..] [COMPILING] foo v1.0.0 [..] [FINISHED] [..] +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -1949,6 +1963,7 @@ [VERIFYING] foo v1.0.0 [..] [COMPILING] foo v1.0.0 [..] [FINISHED] [..] +[PACKAGED] 4 files, [..] ([..] compressed) ", ) .run(); @@ -1994,6 +2009,7 @@ [PACKAGING] foo [..] [VERIFYING] foo [..] [COMPILING] foo [..] +[PACKAGED] [..] files, [..] ([..] compressed) [FINISHED] [..] ", ) @@ -2367,12 +2383,14 @@ [VERIFYING] bar v0.0.1 ([CWD]/bar) [COMPILING] bar v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] foo v0.0.1 ([CWD]) [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -2451,3 +2469,296 @@ &[("Cargo.toml", &rewritten_toml)], ); } + +fn verify_packaged_status_line( + output: std::process::Output, + num_files: usize, + uncompressed_size: u64, + compressed_size: u64, +) { + use cargo::util::human_readable_bytes; + + let stderr = String::from_utf8(output.stderr).unwrap(); + let mut packaged_lines = stderr + .lines() + .filter(|line| line.trim().starts_with("Packaged")); + let packaged_line = packaged_lines + .next() + .expect("`Packaged` status line should appear in stderr"); + assert!( + packaged_lines.next().is_none(), + "Only one `Packaged` status line should appear in stderr" + ); + let size_info = packaged_line.trim().trim_start_matches("Packaged").trim(); + let uncompressed = human_readable_bytes(uncompressed_size); + let compressed = human_readable_bytes(compressed_size); + let expected = format!( + "{} files, {:.1}{} ({:.1}{} compressed)", + num_files, uncompressed.0, uncompressed.1, compressed.0, compressed.1 + ); + assert_eq!(size_info, expected); +} + +#[cargo_test] +fn basic_filesizes() { + let cargo_toml_orig_contents = r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + exclude = ["*.txt"] + license = "MIT" + description = "foo" + "#; + let main_rs_contents = r#"fn main() { println!("🦀"); }"#; + let cargo_toml_contents = format!( + r#"{} +[package] +name = "foo" +version = "0.0.1" +authors = [] +exclude = ["*.txt"] +description = "foo" +license = "MIT" +"#, + cargo::core::package::MANIFEST_PREAMBLE + ); + let cargo_lock_contents = r#"# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "foo" +version = "0.0.1" +"#; + let p = project() + .file("Cargo.toml", cargo_toml_orig_contents) + .file("src/main.rs", main_rs_contents) + .file("src/bar.txt", "Ignored text file contents") // should be ignored when packaging + .build(); + + let uncompressed_size = (cargo_toml_orig_contents.len() + + main_rs_contents.len() + + cargo_toml_contents.len() + + cargo_lock_contents.len()) as u64; + let output = p.cargo("package").exec_with_output().unwrap(); + + assert!(p.root().join("target/package/foo-0.0.1.crate").is_file()); + p.cargo("package -l") + .with_stdout( + "\ +Cargo.lock +Cargo.toml +Cargo.toml.orig +src/main.rs +", + ) + .run(); + p.cargo("package").with_stdout("").run(); + + let f = File::open(&p.root().join("target/package/foo-0.0.1.crate")).unwrap(); + let compressed_size = f.metadata().unwrap().len(); + verify_packaged_status_line(output, 4, uncompressed_size, compressed_size); + validate_crate_contents( + f, + "foo-0.0.1.crate", + &["Cargo.lock", "Cargo.toml", "Cargo.toml.orig", "src/main.rs"], + &[ + ("Cargo.lock", cargo_lock_contents), + ("Cargo.toml", &cargo_toml_contents), + ("Cargo.toml.orig", cargo_toml_orig_contents), + ("src/main.rs", main_rs_contents), + ], + ); +} + +#[cargo_test] +fn larger_filesizes() { + let cargo_toml_orig_contents = r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + license = "MIT" + description = "foo" + "#; + let lots_of_crabs = std::iter::repeat("🦀").take(1337).collect::(); + let main_rs_contents = format!(r#"fn main() {{ println!("{}"); }}"#, lots_of_crabs); + let bar_txt_contents = "This file is relatively uncompressible, to increase the compressed + package size beyond 1KiB. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt + ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur + sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est + laborum."; + let cargo_toml_contents = format!( + r#"{} +[package] +name = "foo" +version = "0.0.1" +authors = [] +description = "foo" +license = "MIT" +"#, + cargo::core::package::MANIFEST_PREAMBLE + ); + let cargo_lock_contents = r#"# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "foo" +version = "0.0.1" +"#; + let p = project() + .file("Cargo.toml", cargo_toml_orig_contents) + .file("src/main.rs", &main_rs_contents) + .file("src/bar.txt", bar_txt_contents) + .build(); + + let uncompressed_size = (cargo_toml_orig_contents.len() + + main_rs_contents.len() + + cargo_toml_contents.len() + + cargo_lock_contents.len() + + bar_txt_contents.len()) as u64; + + let output = p.cargo("package").exec_with_output().unwrap(); + assert!(p.root().join("target/package/foo-0.0.1.crate").is_file()); + p.cargo("package -l") + .with_stdout( + "\ +Cargo.lock +Cargo.toml +Cargo.toml.orig +src/bar.txt +src/main.rs +", + ) + .run(); + p.cargo("package").with_stdout("").run(); + + let f = File::open(&p.root().join("target/package/foo-0.0.1.crate")).unwrap(); + let compressed_size = f.metadata().unwrap().len(); + verify_packaged_status_line(output, 5, uncompressed_size, compressed_size); + validate_crate_contents( + f, + "foo-0.0.1.crate", + &[ + "Cargo.lock", + "Cargo.toml", + "Cargo.toml.orig", + "src/bar.txt", + "src/main.rs", + ], + &[ + ("Cargo.lock", cargo_lock_contents), + ("Cargo.toml", &cargo_toml_contents), + ("Cargo.toml.orig", cargo_toml_orig_contents), + ("src/bar.txt", bar_txt_contents), + ("src/main.rs", &main_rs_contents), + ], + ); +} + +#[cargo_test] +fn symlink_filesizes() { + if !symlink_supported() { + return; + } + + let cargo_toml_orig_contents = r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + license = "MIT" + description = "foo" + "#; + let lots_of_crabs = std::iter::repeat("🦀").take(1337).collect::(); + let main_rs_contents = format!(r#"fn main() {{ println!("{}"); }}"#, lots_of_crabs); + let bar_txt_contents = "This file is relatively uncompressible, to increase the compressed + package size beyond 1KiB. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt + ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation + ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in + reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur + sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est + laborum."; + let cargo_toml_contents = format!( + r#"{} +[package] +name = "foo" +version = "0.0.1" +authors = [] +description = "foo" +license = "MIT" +"#, + cargo::core::package::MANIFEST_PREAMBLE + ); + let cargo_lock_contents = r#"# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "foo" +version = "0.0.1" +"#; + + let p = project() + .file("Cargo.toml", cargo_toml_orig_contents) + .file("src/main.rs", &main_rs_contents) + .file("bla/bar.txt", bar_txt_contents) + .symlink("src/main.rs", "src/main.rs.bak") + .symlink_dir("bla", "foo") + .build(); + + let uncompressed_size = (cargo_toml_orig_contents.len() + + main_rs_contents.len() * 2 + + cargo_toml_contents.len() + + cargo_lock_contents.len() + + bar_txt_contents.len() * 2) as u64; + + let output = p.cargo("package").exec_with_output().unwrap(); + assert!(p.root().join("target/package/foo-0.0.1.crate").is_file()); + p.cargo("package -l") + .with_stdout( + "\ +Cargo.lock +Cargo.toml +Cargo.toml.orig +bla/bar.txt +foo/bar.txt +src/main.rs +src/main.rs.bak +", + ) + .run(); + p.cargo("package").with_stdout("").run(); + + let f = File::open(&p.root().join("target/package/foo-0.0.1.crate")).unwrap(); + let compressed_size = f.metadata().unwrap().len(); + verify_packaged_status_line(output, 7, uncompressed_size, compressed_size); + validate_crate_contents( + f, + "foo-0.0.1.crate", + &[ + "Cargo.lock", + "Cargo.toml", + "Cargo.toml.orig", + "bla/bar.txt", + "foo/bar.txt", + "src/main.rs", + "src/main.rs.bak", + ], + &[ + ("Cargo.lock", cargo_lock_contents), + ("Cargo.toml", &cargo_toml_contents), + ("Cargo.toml.orig", cargo_toml_orig_contents), + ("bla/bar.txt", bar_txt_contents), + ("foo/bar.txt", bar_txt_contents), + ("src/main.rs", &main_rs_contents), + ("src/main.rs.bak", &main_rs_contents), + ], + ); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/publish_lockfile.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/publish_lockfile.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/publish_lockfile.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/publish_lockfile.rs 2023-01-10 13:38:26.000000000 +0000 @@ -77,6 +77,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -135,6 +136,7 @@ [COMPILING] foo v0.0.1 ([..]) [RUNNING] `rustc --crate-name foo src/main.rs [..] [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 5 files, [..] ([..] compressed) ", ) .run(); @@ -232,6 +234,7 @@ [UPDATING] `[..]` index [NOTE] package `multi v0.1.0` added to the packaged Cargo.lock file, was originally sourced from `[..]/foo/multi` [NOTE] package `patched v1.0.0` added to the packaged Cargo.lock file, was originally sourced from `[..]/foo/patched` +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -251,7 +254,12 @@ p.change_file("Cargo.toml", &pl_manifest("foo", "0.2.0", "")); p.cargo("package --no-verify") - .with_stderr("[PACKAGING] foo v0.2.0 ([..])") + .with_stderr( + "\ +[PACKAGING] foo v0.2.0 ([..]) +[PACKAGED] [..] files, [..] ([..] compressed) +", + ) .run(); } @@ -301,6 +309,7 @@ "\ [PACKAGING] a v0.1.0 ([..]) [UPDATING] `[..]` index +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -334,6 +343,7 @@ [UPDATING] `[..]` index [WARNING] package `bar v0.1.0` in Cargo.lock is yanked in registry \ `crates-io`, consider updating to a version that is not yanked +[PACKAGED] [..] files, [..] ([..] compressed) ", ) .run(); @@ -450,6 +460,7 @@ [COMPILING] foo v0.0.1 ([..]) [RUNNING] `rustc --crate-name foo src/main.rs [..] [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] 5 files, [..] ([..] compressed) ", ) .run(); @@ -476,6 +487,7 @@ [ARCHIVING] Cargo.toml [ARCHIVING] Cargo.toml.orig [ARCHIVING] src/main.rs +[PACKAGED] 6 files, [..] ([..] compressed) ", ) .run(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/publish.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/publish.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/publish.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/publish.rs 2023-01-10 13:38:26.000000000 +0000 @@ -122,6 +122,7 @@ [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] foo v0.0.1 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -161,8 +162,8 @@ .replace_crates_io(registry.index_url()) .with_status(101) .with_stderr_contains( - "[ERROR] no upload token found, \ - please run `cargo login` or pass `--token`", + "[ERROR] no token found, \ + please run `cargo login`", ) .run(); @@ -176,6 +177,7 @@ [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] foo v0.0.1 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -217,6 +219,7 @@ [..] [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -414,6 +417,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -459,6 +463,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -504,6 +509,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -548,6 +554,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -622,6 +629,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [COMPILING] foo v0.0.1 [..] [FINISHED] dev [unoptimized + debuginfo] target(s) in [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 ([CWD]) [WARNING] aborting upload due to dry run ", @@ -739,6 +747,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] `alternative` index ", @@ -803,6 +812,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] `alternative` index ", @@ -928,6 +938,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] crates.io index ", @@ -975,6 +986,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] crates.io index ", @@ -1022,6 +1034,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] crates.io index ", @@ -1132,6 +1145,7 @@ [..] [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] crates.io index ", @@ -1200,10 +1214,7 @@ p.cargo("publish") .replace_crates_io(registry.index_url()) .with_status(101) - .with_stderr_contains( - "[ERROR] no upload token found, \ - please run `cargo login` or pass `--token`", - ) + .with_stderr_contains("[ERROR] no token found, please run `cargo login`") .with_stderr_does_not_contain("[VERIFYING] foo v0.0.1 ([CWD])") .run(); @@ -1219,6 +1230,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 [..] [WARNING] aborting upload due to dry run ", @@ -1338,6 +1350,7 @@ [..] [..] [..] +[..] [UPLOADING] foo v0.1.0 ([CWD]) [UPDATING] crates.io index ", @@ -1466,6 +1479,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.1.0 [..] [UPDATING] crates.io index ", @@ -1545,6 +1559,7 @@ .replace_crates_io(registry.index_url()) .with_stderr( "\ +[..] [WARNING] Both `[..]/credentials` and `[..]/credentials.toml` exist. Using `[..]/credentials` [..] [..] @@ -1587,7 +1602,6 @@ .with_status(101) .with_stderr( "\ -[UPDATING] [..] [ERROR] command-line argument --index requires --token to be specified ", ) @@ -1653,6 +1667,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.1.0 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.1.0 [..] [ERROR] failed to read `readme` file for package `foo v0.1.0 ([ROOT]/foo)` @@ -1704,6 +1719,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.0.1 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 [..] [ERROR] failed to publish to registry at http://127.0.0.1:[..]/ @@ -1751,6 +1767,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.0.1 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 [..] [ERROR] failed to publish to registry at http://127.0.0.1:[..]/ @@ -1798,6 +1815,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.0.1 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 [..] [ERROR] failed to publish to registry at http://127.0.0.1:[..]/ @@ -1853,6 +1871,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.0.1 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 [..] [ERROR] failed to publish to registry at http://127.0.0.1:[..]/ @@ -1900,6 +1919,7 @@ "\ [UPDATING] [..] [PACKAGING] foo v0.0.1 [..] +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 [..] [ERROR] failed to publish to registry at http://127.0.0.1:[..]/ @@ -1959,6 +1979,7 @@ [WARNING] manifest has no documentation, homepage or repository. See [..] [PACKAGING] li v0.0.1 ([CWD]/li) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] li v0.0.1 ([CWD]/li) [UPDATING] crates.io index ", @@ -2065,6 +2086,7 @@ [WARNING] manifest has no documentation, homepage or repository. See [..] [PACKAGING] li v0.0.1 ([CWD]/li) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] li v0.0.1 ([CWD]/li) [UPDATING] crates.io index ", @@ -2156,6 +2178,7 @@ [WARNING] manifest has no documentation, homepage or repository. See [..] [PACKAGING] li v0.0.1 ([CWD]/li) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] li v0.0.1 ([CWD]/li) [UPDATING] crates.io index ", @@ -2342,6 +2365,7 @@ [VERIFYING] foo v0.0.1 ([CWD]) [..] [..] +[..] [UPLOADING] foo v0.0.1 ([CWD]) [UPDATING] [..] ", @@ -2370,7 +2394,7 @@ } #[cargo_test] -fn wait_for_publish() { +fn wait_for_first_publish() { // Counter for number of tries before the package is "published" let arc: Arc> = Arc::new(Mutex::new(0)); let arc2 = arc.clone(); @@ -2382,7 +2406,6 @@ .add_responder("/index/de/la/delay", move |req, server| { let mut lock = arc.lock().unwrap(); *lock += 1; - // if the package name contains _ or - if *lock <= 1 { server.not_found(req) } else { @@ -2391,12 +2414,6 @@ }) .build(); - // The sparse-registry test server does not know how to publish on its own. - // So let us call publish for it. - Package::new("delay", "0.0.1") - .file("src/lib.rs", "") - .publish(); - let p = project() .file( "Cargo.toml", @@ -2423,6 +2440,7 @@ [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] delay v0.0.1 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] delay v0.0.1 ([CWD]) [UPDATING] crates.io index [WAITING] on `delay` to propagate to crates.io index (ctrl-c to wait asynchronously) @@ -2460,7 +2478,7 @@ /// the responder twice per cargo invocation. If that ever gets changed /// this test will need to be changed accordingly. #[cargo_test] -fn wait_for_publish_underscore() { +fn wait_for_first_publish_underscore() { // Counter for number of tries before the package is "published" let arc: Arc> = Arc::new(Mutex::new(0)); let arc2 = arc.clone(); @@ -2472,8 +2490,7 @@ .add_responder("/index/de/la/delay_with_underscore", move |req, server| { let mut lock = arc.lock().unwrap(); *lock += 1; - // package names with - or _ hit the responder twice per cargo invocation - if *lock <= 2 { + if *lock <= 1 { server.not_found(req) } else { server.index(req) @@ -2481,12 +2498,6 @@ }) .build(); - // The sparse-registry test server does not know how to publish on its own. - // So let us call publish for it. - Package::new("delay_with_underscore", "0.0.1") - .file("src/lib.rs", "") - .publish(); - let p = project() .file( "Cargo.toml", @@ -2513,6 +2524,7 @@ [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] delay_with_underscore v0.0.1 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] delay_with_underscore v0.0.1 ([CWD]) [UPDATING] crates.io index [WAITING] on `delay_with_underscore` to propagate to crates.io index (ctrl-c to wait asynchronously) @@ -2522,8 +2534,7 @@ // Verify the repsponder has been pinged let lock = arc2.lock().unwrap(); - // NOTE: package names with - or _ hit the responder twice per cargo invocation - assert_eq!(*lock, 3); + assert_eq!(*lock, 2); drop(lock); let p = project() @@ -2548,6 +2559,98 @@ } #[cargo_test] +fn wait_for_subsequent_publish() { + // Counter for number of tries before the package is "published" + let arc: Arc> = Arc::new(Mutex::new(0)); + let arc2 = arc.clone(); + let publish_req = Arc::new(Mutex::new(None)); + let publish_req2 = publish_req.clone(); + + let registry = registry::RegistryBuilder::new() + .http_index() + .http_api() + .add_responder("/api/v1/crates/new", move |req, server| { + // Capture the publish request, but defer publishing + *publish_req.lock().unwrap() = Some(req.clone()); + server.ok(req) + }) + .add_responder("/index/de/la/delay", move |req, server| { + let mut lock = arc.lock().unwrap(); + *lock += 1; + if *lock == 3 { + // Run the publish on the 3rd attempt + server.publish(&publish_req2.lock().unwrap().as_ref().unwrap()); + } + server.index(req) + }) + .build(); + + // Publish an earlier version + Package::new("delay", "0.0.1") + .file("src/lib.rs", "") + .publish(); + + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "delay" + version = "0.0.2" + authors = [] + license = "MIT" + description = "foo" + + "#, + ) + .file("src/lib.rs", "") + .build(); + + p.cargo("publish --no-verify -Z sparse-registry") + .masquerade_as_nightly_cargo(&["sparse-registry"]) + .replace_crates_io(registry.index_url()) + .with_status(0) + .with_stderr( + "\ +[UPDATING] crates.io index +[WARNING] manifest has no documentation, [..] +See [..] +[PACKAGING] delay v0.0.2 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) +[UPLOADING] delay v0.0.2 ([CWD]) +[UPDATING] crates.io index +[WAITING] on `delay` to propagate to crates.io index (ctrl-c to wait asynchronously) +", + ) + .run(); + + // Verify the responder has been pinged + let lock = arc2.lock().unwrap(); + assert_eq!(*lock, 3); + drop(lock); + + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + [dependencies] + delay = "0.0.2" + "#, + ) + .file("src/main.rs", "fn main() {}") + .build(); + + p.cargo("build -Z sparse-registry") + .masquerade_as_nightly_cargo(&["sparse-registry"]) + .with_status(0) + .run(); +} + +#[cargo_test] fn skip_wait_for_publish() { // Intentionally using local registry so the crate never makes it to the index let registry = registry::init(); @@ -2583,6 +2686,7 @@ [WARNING] manifest has no documentation, [..] See [..] [PACKAGING] foo v0.0.1 ([CWD]) +[PACKAGED] [..] files, [..] ([..] compressed) [UPLOADING] foo v0.0.1 ([CWD]) ", ) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/registry_auth.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/registry_auth.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/registry_auth.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/registry_auth.rs 2023-01-10 13:38:26.000000000 +0000 @@ -0,0 +1,304 @@ +//! Tests for normal registry dependencies. + +use cargo_test_support::registry::{Package, RegistryBuilder}; +use cargo_test_support::{project, Execs, Project}; + +fn cargo(p: &Project, s: &str) -> Execs { + let mut e = p.cargo(s); + e.masquerade_as_nightly_cargo(&["sparse-registry", "registry-auth"]) + .arg("-Zsparse-registry") + .arg("-Zregistry-auth"); + e +} + +fn make_project() -> Project { + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.0.1" + authors = [] + + [dependencies.bar] + version = "0.0.1" + registry = "alternative" + "#, + ) + .file("src/main.rs", "fn main() {}") + .build(); + Package::new("bar", "0.0.1").alternative(true).publish(); + p +} + +static SUCCCESS_OUTPUT: &'static str = "\ +[UPDATING] `alternative` index +[DOWNLOADING] crates ... +[DOWNLOADED] bar v0.0.1 (registry `alternative`) +[COMPILING] bar v0.0.1 (registry `alternative`) +[COMPILING] foo v0.0.1 ([CWD]) +[FINISHED] dev [unoptimized + debuginfo] target(s) in [..]s +"; + +#[cargo_test] +fn requires_nightly() { + let _registry = RegistryBuilder::new().alternative().auth_required().build(); + + let p = make_project(); + p.cargo("build") + .with_status(101) + .with_stderr_contains(" authenticated registries require `-Z registry-auth`") + .run(); +} + +#[cargo_test] +fn simple() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "build").with_stderr(SUCCCESS_OUTPUT).run(); +} + +#[cargo_test] +fn environment_config() { + let registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_registry() + .no_configure_token() + .http_index() + .build(); + let p = make_project(); + cargo(&p, "build") + .env( + "CARGO_REGISTRIES_ALTERNATIVE_INDEX", + registry.index_url().as_str(), + ) + .env("CARGO_REGISTRIES_ALTERNATIVE_TOKEN", registry.token()) + .with_stderr(SUCCCESS_OUTPUT) + .run(); +} + +#[cargo_test] +fn environment_token() { + let registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "build") + .env("CARGO_REGISTRIES_ALTERNATIVE_TOKEN", registry.token()) + .with_stderr(SUCCCESS_OUTPUT) + .run(); +} + +#[cargo_test] +fn missing_token() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "build") + .with_status(101) + .with_stderr( + "\ +[UPDATING] `alternative` index +[ERROR] failed to get `bar` as a dependency of package `foo v0.0.1 ([..])` + +Caused by: + no token found for `alternative`, please run `cargo login --registry alternative` + or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN", + ) + .run(); +} + +#[cargo_test] +fn missing_token_git() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .build(); + + let p = make_project(); + cargo(&p, "build") + .with_status(101) + .with_stderr( + "\ +[UPDATING] `alternative` index +[ERROR] failed to download `bar v0.0.1 (registry `alternative`)` + +Caused by: + unable to get packages from source + +Caused by: + no token found for `alternative`, please run `cargo login --registry alternative` + or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN", + ) + .run(); +} + +#[cargo_test] +fn incorrect_token() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "build") + .env("CARGO_REGISTRIES_ALTERNATIVE_TOKEN", "incorrect") + .with_status(101) + .with_stderr( + "\ +[UPDATING] `alternative` index +[ERROR] failed to get `bar` as a dependency of package `foo v0.0.1 ([..])` + +Caused by: + token rejected for `alternative`, please run `cargo login --registry alternative` + or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN + +Caused by: + failed to get successful HTTP response from `http://[..]/index/config.json`, got 401 + body: + Unauthorized message from server.", + ) + .run(); +} + +#[cargo_test] +fn incorrect_token_git() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .http_api() + .build(); + + let p = make_project(); + cargo(&p, "build") + .env("CARGO_REGISTRIES_ALTERNATIVE_TOKEN", "incorrect") + .with_status(101) + .with_stderr( + "\ +[UPDATING] `alternative` index +[DOWNLOADING] crates ... +[ERROR] failed to download from `http://[..]/dl/bar/0.0.1/download` + +Caused by: + failed to get successful HTTP response from `http://[..]/dl/bar/0.0.1/download`, got 401 + body: + Unauthorized message from server.", + ) + .run(); +} + +#[cargo_test] +fn anonymous_alt_registry() { + // An alternative registry that requires auth, but is not in the config. + let registry = RegistryBuilder::new() + .alternative() + .auth_required() + .no_configure_token() + .no_configure_registry() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, &format!("install --index {} bar", registry.index_url())) + .with_status(101) + .with_stderr( + "\ +[UPDATING] `[..]` index +[ERROR] no token found for `[..]` +consider setting up an alternate registry in Cargo's configuration +as described by https://doc.rust-lang.org/cargo/reference/registries.html + +[registries] +my-registry = { index = \"[..]\" } + +", + ) + .run(); +} + +#[cargo_test] +fn login() { + let _registry = RegistryBuilder::new() + .alternative() + .no_configure_token() + .auth_required() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "login --registry alternative") + .with_stdout("please paste the token found on https://test-registry-login/me below") + .with_stdin("sekrit") + .run(); +} + +#[cargo_test] +fn login_existing_token() { + let _registry = RegistryBuilder::new() + .alternative() + .auth_required() + .http_index() + .build(); + + let p = make_project(); + cargo(&p, "login --registry alternative") + .with_stdout("please paste the token found on file://[..]/me below") + .with_stdin("sekrit") + .run(); +} + +#[cargo_test] +fn duplicate_index() { + let server = RegistryBuilder::new() + .alternative() + .no_configure_token() + .auth_required() + .build(); + let p = make_project(); + + // Two alternative registries with the same index. + cargo(&p, "build") + .env( + "CARGO_REGISTRIES_ALTERNATIVE1_INDEX", + server.index_url().as_str(), + ) + .env( + "CARGO_REGISTRIES_ALTERNATIVE2_INDEX", + server.index_url().as_str(), + ) + .with_status(101) + .with_stderr( + "\ +[UPDATING] `alternative` index +[ERROR] failed to download `bar v0.0.1 (registry `alternative`)` + +Caused by: + unable to get packages from source + +Caused by: + multiple registries are configured with the same index url \ + 'registry+file://[..]/alternative-registry': alternative1, alternative2 +", + ) + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/registry.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/registry.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/registry.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/registry.rs 2023-01-10 13:38:26.000000000 +0000 @@ -29,6 +29,12 @@ } #[cargo_test] +fn test_server_stops() { + let server = setup_http(); + server.join(); // ensure the server fully shuts down +} + +#[cargo_test] fn simple_http() { let _server = setup_http(); simple(cargo_http); @@ -500,6 +506,7 @@ [COMPILING] notyet v0.0.1 [COMPILING] foo v0.0.1 ([CWD][..]) [FINISHED] dev [unoptimized + debuginfo] target(s) in [..]s +[PACKAGED] [..] ", ) .run(); @@ -1113,7 +1120,7 @@ .run(); cargo_process("login") .replace_crates_io(registry.index_url()) - .with_stdout("please paste the API Token found on [..]/me below") + .with_stdout("please paste the token found on [..]/me below") .with_stdin("some token") .run(); let credentials = fs::read_to_string(&credentials).unwrap(); @@ -2749,10 +2756,12 @@ .file("src/main.rs", "fn main() {}") .build(); + // Size of bar.crate is around 180 bytes. Package::new("bar", "0.0.1").publish(); p.cargo("build") .env("__CARGO_TEST_MAX_UNPACK_SIZE", "8") // hit 8 bytes limit and boom! + .env("__CARGO_TEST_MAX_UNPACK_RATIO", "0") .with_status(101) .with_stderr( "\ @@ -2772,6 +2781,18 @@ ", ) .run(); + + // Restore to the default ratio and it should compile. + p.cargo("build") + .env("__CARGO_TEST_MAX_UNPACK_SIZE", "8") + .with_stderr( + "\ +[COMPILING] bar v0.0.1 +[COMPILING] foo v0.0.1 ([..]) +[FINISHED] dev [..] +", + ) + .run(); } #[cargo_test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/rustdoc_extern_html.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/rustdoc_extern_html.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/rustdoc_extern_html.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/rustdoc_extern_html.rs 2023-01-10 13:38:26.000000000 +0000 @@ -342,3 +342,85 @@ ) .run(); } + +#[cargo_test(nightly, reason = "--extern-html-root-url is unstable")] +fn alt_sparse_registry() { + // Supports other registry names. + + registry::init(); + let _registry = registry::RegistryBuilder::new() + .http_index() + .alternative() + .build(); + + Package::new("bar", "1.0.0") + .alternative(true) + .file( + "src/lib.rs", + r#" + extern crate baz; + pub struct Queen; + pub use baz::King; + "#, + ) + .registry_dep("baz", "1.0") + .publish(); + Package::new("baz", "1.0.0") + .alternative(true) + .file("src/lib.rs", "pub struct King;") + .publish(); + Package::new("grimm", "1.0.0") + .file("src/lib.rs", "pub struct Gold;") + .publish(); + + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + edition = "2018" + + [dependencies] + bar = { version = "1.0", registry="alternative" } + grimm = "1.0" + "#, + ) + .file( + "src/lib.rs", + r#" + pub fn queen() -> bar::Queen { bar::Queen } + pub fn king() -> bar::King { bar::King } + pub fn gold() -> grimm::Gold { grimm::Gold } + "#, + ) + .file( + ".cargo/config", + r#" + [doc.extern-map.registries] + alternative = "https://example.com/{pkg_name}/{version}/" + crates-io = "https://docs.rs/" + "#, + ) + .build(); + p.cargo("doc -v --no-deps -Zrustdoc-map -Zsparse-registry") + .masquerade_as_nightly_cargo(&["rustdoc-map", "sparse-registry"]) + .with_stderr_contains( + "[RUNNING] `rustdoc [..]--crate-name foo \ + [..]bar=https://example.com/bar/1.0.0/[..]grimm=https://docs.rs/grimm/1.0.0/[..]", + ) + .run(); + let queen = p.read_file("target/doc/foo/fn.queen.html"); + assert!(queen.contains(r#"href="https://example.com/bar/1.0.0/bar/struct.Queen.html""#)); + // The king example fails to link. Rustdoc seems to want the origin crate + // name (baz) for re-exports. There are many issues in the issue tracker + // for rustdoc re-exports, so I'm not sure, but I think this is maybe a + // rustdoc issue. Alternatively, Cargo could provide mappings for all + // transitive dependencies to fix this. + let king = p.read_file("target/doc/foo/fn.king.html"); + assert!(king.contains(r#"-> King"#)); + + let gold = p.read_file("target/doc/foo/fn.gold.html"); + assert!(gold.contains(r#"href="https://docs.rs/grimm/1.0.0/grimm/struct.Gold.html""#)); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/search.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/search.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/search.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/search.rs 2023-01-10 13:38:26.000000000 +0000 @@ -167,3 +167,26 @@ .with_stdout_contains("[..]\x1b[[..]") .run(); } + +#[cargo_test] +fn auth_required_failure() { + let server = setup().auth_required().no_configure_token().build(); + + cargo_process("-Zregistry-auth search postgres") + .masquerade_as_nightly_cargo(&["registry-auth"]) + .replace_crates_io(server.index_url()) + .with_status(101) + .with_stderr_contains("[ERROR] no token found, please run `cargo login`") + .run(); +} + +#[cargo_test] +fn auth_required() { + let server = setup().auth_required().build(); + + cargo_process("-Zregistry-auth search postgres") + .masquerade_as_nightly_cargo(&["registry-auth"]) + .replace_crates_io(server.index_url()) + .with_stdout_contains(SEARCH_RESULTS) + .run(); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/source_replacement.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/source_replacement.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/source_replacement.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/source_replacement.rs 2023-01-10 13:38:26.000000000 +0000 @@ -218,6 +218,7 @@ [COMPILING] bar v1.0.0 [COMPILING] foo v0.0.1 ([..]foo-0.0.1) [FINISHED] dev [..] +[PACKAGED] [..] [UPLOADING] foo v0.0.1 ([..]) [UPDATING] crates.io index ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/test.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/test.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/test.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/test.rs 2023-01-10 13:38:26.000000000 +0000 @@ -3485,6 +3485,19 @@ .with_stderr_contains(cargo.to_str().unwrap()) .with_stdout_contains("test env_test ... ok") .run(); + + // Check that `cargo test` propagates the environment's $CARGO + let rustc = cargo_util::paths::resolve_executable("rustc".as_ref()) + .unwrap() + .canonicalize() + .unwrap(); + let rustc = rustc.to_str().unwrap(); + p.cargo("test --lib -- --nocapture") + // we use rustc since $CARGO is only used if it points to a path that exists + .env(cargo::CARGO_ENV, rustc) + .with_stderr_contains(rustc) + .with_stdout_contains("test env_test ... ok") + .run(); } #[cargo_test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/tree.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/tree.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/tree.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/tree.rs 2023-01-10 13:38:26.000000000 +0000 @@ -490,6 +490,62 @@ } #[cargo_test] +fn no_selected_target_dependency() { + // --target flag + if cross_compile::disabled() { + return; + } + Package::new("targetdep", "1.0.0").publish(); + + let p = project() + .file( + "Cargo.toml", + &format!( + r#" + [package] + name = "foo" + version = "0.1.0" + + [target.'{alt}'.dependencies] + targetdep = "1.0" + + "#, + alt = alternate(), + ), + ) + .file("src/lib.rs", "") + .file("build.rs", "fn main() {}") + .build(); + + p.cargo("tree") + .with_stdout( + "\ +foo v0.1.0 ([..]/foo) +", + ) + .run(); + + p.cargo("tree -i targetdep") + .with_stderr( + "\ +[WARNING] nothing to print. + +To find dependencies that require specific target platforms, \ +try to use option `--target all` first, and then narrow your search scope accordingly. +", + ) + .run(); + p.cargo("tree -i targetdep --target all") + .with_stdout( + "\ +targetdep v1.0.0 +└── foo v0.1.0 ([..]/foo) +", + ) + .run(); +} + +#[cargo_test] fn dep_kinds() { Package::new("inner-devdep", "1.0.0").publish(); Package::new("inner-builddep", "1.0.0").publish(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/update.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/update.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/update.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/update.rs 2023-01-10 13:38:26.000000000 +0000 @@ -428,42 +428,6 @@ } #[cargo_test] -fn update_precise_without_package() { - Package::new("serde", "0.2.0").publish(); - - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "bar" - version = "0.0.1" - authors = [] - - [dependencies] - serde = "0.2" - "#, - ) - .file("src/lib.rs", "") - .build(); - - p.cargo("build").run(); - - Package::new("serde", "0.2.1").publish(); - Package::new("serde", "0.3.0").publish(); - - p.cargo("update --precise 0.3.0") - .with_stderr( - "\ -[WARNING] precise is only supported with \"--package \", this will become a hard error in a future release. -[UPDATING] `[..]` index -[UPDATING] serde v0.2.0 -> v0.2.1 -", - ) - .run(); -} - -#[cargo_test] fn update_aggressive() { Package::new("log", "0.1.0").publish(); Package::new("serde", "0.2.1").dep("log", "0.1").publish(); @@ -498,41 +462,6 @@ ", ) .run(); -} - -#[cargo_test] -fn update_aggressive_without_package() { - Package::new("serde", "0.2.0").publish(); - - let p = project() - .file( - "Cargo.toml", - r#" - [package] - name = "bar" - version = "0.0.1" - authors = [] - - [dependencies] - serde = "0.2" - "#, - ) - .file("src/lib.rs", "") - .build(); - - p.cargo("build").run(); - - Package::new("serde", "0.2.1").publish(); - - p.cargo("update --aggressive") - .with_stderr( - "\ -[WARNING] aggressive is only supported with \"--package \", this will become a hard error in a future release. -[UPDATING] `[..]` index -[UPDATING] serde v0.2.0 -> v0.2.1 -", - ) - .run(); } // cargo update should respect its arguments even without a lockfile. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/vendor.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/vendor.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/vendor.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/vendor.rs 2023-01-10 13:38:26.000000000 +0000 @@ -7,7 +7,7 @@ use std::fs; use cargo_test_support::git; -use cargo_test_support::registry::{self, Package}; +use cargo_test_support::registry::{self, Package, RegistryBuilder}; use cargo_test_support::{basic_lib_manifest, paths, project, Project}; #[cargo_test] @@ -68,6 +68,41 @@ .run(); } +#[cargo_test] +fn vendor_sample_config_alt_registry() { + let registry = RegistryBuilder::new().alternative().http_index().build(); + let p = project() + .file( + "Cargo.toml", + r#" + [package] + name = "foo" + version = "0.1.0" + + [dependencies] + log = { version = "0.3.5", registry = "alternative" } + "#, + ) + .file("src/lib.rs", "") + .build(); + + Package::new("log", "0.3.5").alternative(true).publish(); + + p.cargo("vendor --respect-source-config -Z sparse-registry") + .masquerade_as_nightly_cargo(&["sparse-registry"]) + .with_stdout(format!( + r#"[source."{0}"] +registry = "{0}" +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" +"#, + registry.index_url() + )) + .run(); +} + #[cargo_test] fn vendor_path_specified() { let p = project() diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/weak_dep_features.rs cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/weak_dep_features.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/tests/testsuite/weak_dep_features.rs 2023-01-10 13:41:19.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/tests/testsuite/weak_dep_features.rs 2023-01-10 13:38:26.000000000 +0000 @@ -568,6 +568,7 @@ [VERIFYING] foo v0.1.0 [..] [COMPILING] foo v0.1.0 [..] [FINISHED] [..] +[PACKAGED] [..] [UPLOADING] foo v0.1.0 [..] [UPDATING] [..] ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"} \ No newline at end of file +{"files":{},"package":"224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,7 +13,7 @@ edition = "2018" rust-version = "1.39" name = "anyhow" -version = "1.0.68" +version = "1.0.69" authors = ["David Tolnay "] description = "Flexible concrete Error type built on std::error::Error" documentation = "https://docs.rs/anyhow" @@ -39,6 +39,10 @@ [lib] doc-scrape-examples = false +[dependencies.backtrace] +version = "0.3.51" +optional = true + [dev-dependencies.futures] version = "0.3" default-features = false diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/drop-backtrace.patch cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/drop-backtrace.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/drop-backtrace.patch 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/drop-backtrace.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -36,10 +36,6 @@ - "doc_cfg", - ] - --[dependencies.backtrace] --version = "0.3.51" --optional = true -- - [dev-dependencies.futures] - version = "0.3" - default-features = false diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/series 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -drop-backtrace.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/LICENSE-APACHE 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -174,28 +174,3 @@ 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -210,7 +210,7 @@ //! will require an explicit `.map_err(Error::msg)` when working with a //! non-Anyhow error type inside a function that returns Anyhow's error type. -#![doc(html_root_url = "https://docs.rs/anyhow/1.0.68")] +#![doc(html_root_url = "https://docs.rs/anyhow/1.0.69")] #![cfg_attr(backtrace, feature(error_generic_member_access, provide_any))] #![cfg_attr(doc_cfg, feature(doc_cfg))] #![cfg_attr(not(feature = "std"), no_std)] @@ -367,7 +367,7 @@ /// # Ok(()) /// } /// ``` -#[repr(transparent)] +#[cfg_attr(not(doc), repr(transparent))] pub struct Error { inner: Own, } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/tests/test_chain.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/tests/test_chain.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/anyhow/tests/test_chain.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/anyhow/tests/test_chain.rs 2023-02-17 23:07:30.000000000 +0000 @@ -56,6 +56,7 @@ } #[test] +#[allow(clippy::redundant_clone)] fn test_clone() { let e = error(); let mut chain = e.chain().clone(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b"} \ No newline at end of file +{"files":{},"package":"b7f0778972c64420fdedc63f09919c8a88bda7b25135357fd25a5d9f3257e832"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/Cargo.lock cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/Cargo.lock --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/Cargo.lock 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/Cargo.lock 2023-02-17 23:07:30.000000000 +0000 @@ -4,7 +4,7 @@ [[package]] name = "bstr" -version = "1.1.0" +version = "1.2.0" dependencies = [ "memchr", "once_cell", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.60" name = "bstr" -version = "1.1.0" +version = "1.2.0" authors = ["Andrew Gallant "] exclude = ["/.github"] description = "A string type that is not required to be valid UTF-8." diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/ext_slice.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/ext_slice.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/ext_slice.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/ext_slice.rs 2023-02-17 23:07:30.000000000 +0000 @@ -101,12 +101,16 @@ /// Ensure that callers cannot implement `ByteSlice` by making an /// umplementable trait its super trait. -pub trait Sealed {} -impl Sealed for [u8] {} -impl Sealed for [u8; N] {} +mod private { + pub trait Sealed {} +} +impl private::Sealed for [u8] {} +impl private::Sealed for [u8; N] {} /// A trait that extends `&[u8]` with string oriented methods. -pub trait ByteSlice: Sealed { +/// +/// This trait is sealed and cannot be implemented outside of `bstr`. +pub trait ByteSlice: private::Sealed { /// A method for accessing the raw bytes of this type. This is always a /// no-op and callers shouldn't care about it. This only exists for making /// the extension trait work. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/ext_vec.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/ext_vec.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/ext_vec.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/ext_vec.rs 2023-02-17 23:07:30.000000000 +0000 @@ -104,8 +104,10 @@ /// Ensure that callers cannot implement `ByteSlice` by making an /// umplementable trait its super trait. -pub trait Sealed {} -impl Sealed for Vec {} +mod private { + pub trait Sealed {} +} +impl private::Sealed for Vec {} /// A trait that extends `Vec` with string oriented methods. /// @@ -119,7 +121,9 @@ /// let s = Vec::from_slice(b"abc"); // NOT ByteVec::from_slice("...") /// assert_eq!(s, B("abc")); /// ``` -pub trait ByteVec: Sealed { +/// +/// This trait is sealed and cannot be implemented outside of `bstr`. +pub trait ByteVec: private::Sealed { /// A method for accessing the raw vector bytes of this type. This is /// always a no-op and callers shouldn't care about it. This only exists /// for making the extension trait work. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/impls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/impls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/bstr/src/impls.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/bstr/src/impls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -667,6 +667,14 @@ } } + #[cfg(feature = "alloc")] + impl Clone for Box { + #[inline] + fn clone(&self) -> Self { + BStr::from_boxed_bytes(self.as_bytes().into()) + } + } + impl Eq for BStr {} impl PartialEq for BStr { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"015267563b1df20adccdd00cb05257b1dfbea70a04928e9cf88ffb850c1a40af"} \ No newline at end of file +{"files":{},"package":"318d6c16e73b3a900eb212ad6a82fc7d298c5ab8184c7a9998646455bc474a16"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -10,36 +10,79 @@ # See Cargo.toml.orig for the original contents. [package] -edition = "2018" +edition = "2021" +rust-version = "1.60.0" name = "concolor" -version = "0.0.8" -include = ["src/**/*", "Cargo.toml", "LICENSE*", "README.md", "examples/**/*"] +version = "0.0.11" +include = [ + "src/**/*", + "Cargo.toml", + "LICENSE*", + "README.md", + "examples/**/*", +] description = "Control console coloring across all dependencies" -keywords = ["cli", "color", "no-std", "terminal", "ansi"] +readme = "README.md" +keywords = [ + "cli", + "color", + "no-std", + "terminal", + "ansi", +] categories = ["command-line-interface"] license = "MIT OR Apache-2.0" repository = "https://github.com/rust-cli/concolor" + [package.metadata.docs.rs] -features = ["auto", "api_unstable"] -[dependencies.atty] -version = "0.2.14" -optional = true +features = [ + "auto", + "api_unstable", +] [dependencies.bitflags] version = "1" optional = true [dependencies.concolor-query] -version = "^0.0.5" +version = "^0.1.0" +optional = true + +[dependencies.is-terminal] +version = "0.4" optional = true [features] api_unstable = ["core"] -auto = ["interactive", "clicolor", "no_color", "term", "windows"] -clicolor = ["core", "concolor-query"] -core = ["std", "bitflags"] -interactive = ["core", "atty"] -no_color = ["core", "concolor-query"] +auto = [ + "interactive", + "clicolor", + "no_color", + "term", + "windows", +] +clicolor = [ + "core", + "concolor-query", +] +core = [ + "std", + "bitflags", +] +interactive = [ + "core", + "dep:is-terminal", +] +no_color = [ + "core", + "concolor-query", +] std = [] -term = ["core", "concolor-query"] -windows = ["core", "concolor-query/windows"] +term = [ + "core", + "concolor-query", +] +windows = [ + "core", + "concolor-query/windows", +] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,202 @@ + 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. + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +Copyright (c) 2019-2021 The typos Developers + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/color/choice.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/color/choice.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/color/choice.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/color/choice.rs 2023-02-17 23:07:30.000000000 +0000 @@ -67,8 +67,7 @@ let actual: Vec<_> = values .iter() .cloned() - .map(AtomicChoice::to_choice) - .flatten() + .filter_map(AtomicChoice::to_choice) .collect(); assert_eq!(expected, actual); } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/color/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/color/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/color/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/color/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -111,10 +111,12 @@ #[cfg(feature = "interactive")] { - if atty::is(atty::Stream::Stdout) { + use is_terminal::IsTerminal; + use std::io::{stderr, stdout}; + if stdout().is_terminal() { flags |= InternalFlags::TTY_STDOUT; } - if atty::is(atty::Stream::Stderr) { + if stderr().is_terminal() { flags |= InternalFlags::TTY_STDERR; } } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -19,7 +19,7 @@ //! //! ```toml //! [dependencies] -//! concolor = { version = "0.0.8", features = "color" } +//! concolor = { version = "0.0.11", features = "color" } //! ``` //! Notes: //! - With the @@ -42,7 +42,7 @@ //! on `concolor`: //! ```toml //! [dependencies] -//! concolor = { version = "0.0.8", default-features = false } +//! concolor = { version = "0.0.11", default-features = false } //! ``` //! //! At times, you might want to provide a convenience feature for color support, so you could also: @@ -52,7 +52,7 @@ //! color = "concolor/auto" //! //! [dependencies] -//! concolor = { version = "0.0.8", optional = True} +//! concolor = { version = "0.0.11", optional = True} //! ``` //! Notes: //! - Your choice on whether to make this default or not diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"d6417fe6fc03a8b533fd2177742eeb39a90c7233eedec7bac96d4d6b69a09449"} \ No newline at end of file +{"files":{},"package":"82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -10,12 +10,26 @@ # See Cargo.toml.orig for the original contents. [package] -edition = "2018" +edition = "2021" +rust-version = "1.60.0" name = "concolor-query" -version = "0.0.5" -include = ["src/**/*", "Cargo.toml", "LICENSE*", "README.md", "examples/**/*"] +version = "0.1.0" +include = [ + "src/**/*", + "Cargo.toml", + "LICENSE*", + "README.md", + "examples/**/*", +] description = "Look up colored console capabilities" -keywords = ["cli", "color", "no-std", "terminal", "ansi"] +readme = "README.md" +keywords = [ + "cli", + "color", + "no-std", + "terminal", + "ansi", +] categories = ["command-line-interface"] license = "MIT OR Apache-2.0" repository = "https://github.com/rust-cli/concolor" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,202 @@ + 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. + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +Copyright (c) 2019-2021 The typos Developers + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/concolor-query/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/concolor-query/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -103,7 +103,7 @@ /// /// [COLORTERM]: https://github.com/termstandard/colors pub fn truecolor() -> bool { - let value = std::env::var_os("COLORTERM "); + let value = std::env::var_os("COLORTERM"); let value = value.as_deref().unwrap_or_default(); value == "truecolor" || value == "24bit" } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"} \ No newline at end of file +{"files":{},"package":"85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.lock cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.lock --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.lock 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.lock 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,254 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "0.7.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +dependencies = [ + "memchr", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cc" +version = "1.0.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "env_logger" +version = "0.10.0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "io-lifetimes" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7d367024b3f3414d8e01f437f704f41a9f64ab36f9067fa73e526ad4c763c87" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "is-terminal" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae5bc6e2eb41c9def29a3e0f1306382807764b9b53112030eff57435667352d" +dependencies = [ + "hermit-abi", + "io-lifetimes", + "rustix", + "windows-sys", +] + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "linux-raw-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f" + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "regex" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "rustix" +version = "0.36.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1fbb4dfc4eb1d390c02df47760bb19a84bb80b301ecc947ab5406394d8223e" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[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.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -10,21 +10,24 @@ # See Cargo.toml.orig for the original contents. [package] -edition = "2018" +edition = "2021" +rust-version = "1.60.0" name = "env_logger" -version = "0.9.3" +version = "0.10.0" include = [ + "build.rs", "src/**/*", - "tests", - "LICENSE-*", + "Cargo.toml", + "LICENSE*", "README.md", - "CHANGELOG.md", + "tests/**/*", + "benches/**/*", + "examples/**/*", ] description = """ A logging implementation for `log` which is configured via an environment variable. """ -documentation = "https://docs.rs/env_logger" readme = "README.md" keywords = [ "logging", @@ -33,7 +36,42 @@ ] categories = ["development-tools::debugging"] license = "MIT OR Apache-2.0" -repository = "https://github.com/env-logger-rs/env_logger/" +repository = "https://github.com/rust-cli/env_logger/" + +[[package.metadata.release.pre-release-replacements]] +file = "CHANGELOG.md" +search = "Unreleased" +replace = "{{version}}" +min = 1 + +[[package.metadata.release.pre-release-replacements]] +file = "CHANGELOG.md" +search = '\.\.\.HEAD' +replace = "...{{tag_name}}" +exactly = 1 + +[[package.metadata.release.pre-release-replacements]] +file = "CHANGELOG.md" +search = "ReleaseDate" +replace = "{{date}}" +min = 1 + +[[package.metadata.release.pre-release-replacements]] +file = "CHANGELOG.md" +search = "" +replace = """ + +## [Unreleased] - ReleaseDate +""" +exactly = 1 + +[[package.metadata.release.pre-release-replacements]] +file = "CHANGELOG.md" +search = "" +replace = """ + +[Unreleased]: https://github.com/rust-cli/env_logger/compare/{{tag_name}}...HEAD""" +exactly = 1 [[test]] name = "regexp_filter" @@ -51,14 +89,14 @@ name = "init-twice-retains-filter" harness = false -[dependencies.atty] -version = "0.2.5" -optional = true - [dependencies.humantime] version = "2.0.0" optional = true +[dependencies.is-terminal] +version = "0.4.0" +optional = true + [dependencies.log] version = "0.4.8" features = ["std"] @@ -77,9 +115,15 @@ optional = true [features] +auto-color = [ + "dep:is-terminal", + "color", +] +color = ["dep:termcolor"] default = [ - "termcolor", - "atty", + "auto-color", "humantime", "regex", ] +humantime = ["dep:humantime"] +regex = ["dep:regex"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/CHANGELOG.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/CHANGELOG.md 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -Changes to this crate are tracked via [GitHub Releases][releases]. - -[releases]: https://github.com/env-logger-rs/env_logger/releases diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_default_format.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_default_format.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_default_format.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_default_format.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,40 @@ +/*! +Disabling parts of the default format. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` + +Also try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors +or `auto` to enable them: + +```no_run,shell +$ export MY_LOG_STYLE=never +``` + +If you want to control the logging output completely, see the `custom_logger` example. +*/ + +#[macro_use] +extern crate log; + +use env_logger::{Builder, Env}; + +fn init_logger() { + let env = Env::default() + .filter("MY_LOG_LEVEL") + .write_style("MY_LOG_STYLE"); + + Builder::from_env(env) + .format_level(false) + .format_timestamp_nanos() + .init(); +} + +fn main() { + init_logger(); + + info!("a log from `MyLogger`"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_format.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_format.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_format.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_format.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,54 @@ +/*! +Changing the default logging format. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` + +Also try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors +or `auto` to enable them: + +```no_run,shell +$ export MY_LOG_STYLE=never +``` + +If you want to control the logging output completely, see the `custom_logger` example. +*/ + +#[cfg(all(feature = "color", feature = "humantime"))] +fn main() { + use env_logger::{fmt::Color, Builder, Env}; + + use std::io::Write; + + fn init_logger() { + let env = Env::default() + .filter("MY_LOG_LEVEL") + .write_style("MY_LOG_STYLE"); + + Builder::from_env(env) + .format(|buf, record| { + let mut style = buf.style(); + style.set_bg(Color::Yellow).set_bold(true); + + let timestamp = buf.timestamp(); + + writeln!( + buf, + "My formatted log ({}): {}", + timestamp, + style.value(record.args()) + ) + }) + .init(); + } + + init_logger(); + + log::info!("a log from `MyLogger`"); +} + +#[cfg(not(all(feature = "color", feature = "humantime")))] +fn main() {} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_logger.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_logger.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_logger.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/custom_logger.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,62 @@ +/*! +Using `env_logger` to drive a custom logger. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` + +If you only want to change the way logs are formatted, look at the `custom_format` example. +*/ + +#[macro_use] +extern crate log; + +use env_logger::filter::{Builder, Filter}; + +use log::{Log, Metadata, Record, SetLoggerError}; + +const FILTER_ENV: &str = "MY_LOG_LEVEL"; + +struct MyLogger { + inner: Filter, +} + +impl MyLogger { + fn new() -> MyLogger { + let mut builder = Builder::from_env(FILTER_ENV); + + MyLogger { + inner: builder.build(), + } + } + + fn init() -> Result<(), SetLoggerError> { + let logger = Self::new(); + + log::set_max_level(logger.inner.filter()); + log::set_boxed_logger(Box::new(logger)) + } +} + +impl Log for MyLogger { + fn enabled(&self, metadata: &Metadata) -> bool { + self.inner.enabled(metadata) + } + + fn log(&self, record: &Record) { + // Check if the record is matched by the logger before logging + if self.inner.matches(record) { + println!("{} - {}", record.level(), record.args()); + } + } + + fn flush(&self) {} +} + +fn main() { + MyLogger::init().unwrap(); + + info!("a log from `MyLogger`"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/default.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/default.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/default.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/default.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,38 @@ +/*! +Using `env_logger`. + +Before running this example, try setting the `MY_LOG_LEVEL` environment variable to `info`: + +```no_run,shell +$ export MY_LOG_LEVEL='info' +``` + +Also try setting the `MY_LOG_STYLE` environment variable to `never` to disable colors +or `auto` to enable them: + +```no_run,shell +$ export MY_LOG_STYLE=never +``` +*/ + +#[macro_use] +extern crate log; + +use env_logger::Env; + +fn main() { + // The `Env` lets us tweak what the environment + // variables to read are and what the default + // value is if they're missing + let env = Env::default() + .filter_or("MY_LOG_LEVEL", "trace") + .write_style_or("MY_LOG_STYLE", "always"); + + env_logger::init_from_env(env); + + trace!("some trace log"); + debug!("some debug log"); + info!("some information log"); + warn!("some warning log"); + error!("some error log"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/direct_logger.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/direct_logger.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/direct_logger.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/direct_logger.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,39 @@ +/*! +Using `env_logger::Logger` and the `log::Log` trait directly. + +This example doesn't rely on environment variables, or having a static logger installed. +*/ + +use env_logger::{Builder, WriteStyle}; + +use log::{Level, LevelFilter, Log, MetadataBuilder, Record}; + +fn record() -> Record<'static> { + let error_metadata = MetadataBuilder::new() + .target("myApp") + .level(Level::Error) + .build(); + + Record::builder() + .metadata(error_metadata) + .args(format_args!("Error!")) + .line(Some(433)) + .file(Some("app.rs")) + .module_path(Some("server")) + .build() +} + +fn main() { + let stylish_logger = Builder::new() + .filter(None, LevelFilter::Error) + .write_style(WriteStyle::Always) + .build(); + + let unstylish_logger = Builder::new() + .filter(None, LevelFilter::Error) + .write_style(WriteStyle::Never) + .build(); + + stylish_logger.log(&record()); + unstylish_logger.log(&record()); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/filters_from_code.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/filters_from_code.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/filters_from_code.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/filters_from_code.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +/*! +Specify logging filters in code instead of using an environment variable. +*/ + +#[macro_use] +extern crate log; + +use env_logger::Builder; + +use log::LevelFilter; + +fn main() { + Builder::new().filter_level(LevelFilter::max()).init(); + + trace!("some trace log"); + debug!("some debug log"); + info!("some information log"); + warn!("some warning log"); + error!("some error log"); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/in_tests.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/in_tests.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/in_tests.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/in_tests.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,54 @@ +/*! +Using `env_logger` in tests. + +Log events will be captured by `cargo` and only printed if the test fails. +You can run this example by calling: + +```text +cargo test --example in_tests +``` + +You should see the `it_does_not_work` test fail and include its log output. +*/ + +#[cfg_attr(test, macro_use)] +extern crate log; + +fn main() {} + +#[cfg(test)] +mod tests { + fn init_logger() { + let _ = env_logger::builder() + // Include all events in tests + .filter_level(log::LevelFilter::max()) + // Ensure events are captured by `cargo test` + .is_test(true) + // Ignore errors initializing the logger if tests race to configure it + .try_init(); + } + + #[test] + fn it_works() { + init_logger(); + + let a = 1; + let b = 2; + + debug!("checking whether {} + {} = 3", a, b); + + assert_eq!(3, a + b); + } + + #[test] + fn it_does_not_work() { + init_logger(); + + let a = 1; + let b = 2; + + debug!("checking whether {} + {} = 6", a, b); + + assert_eq!(6, a + b); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/syslog_friendly_format.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/syslog_friendly_format.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/examples/syslog_friendly_format.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/examples/syslog_friendly_format.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,24 @@ +use std::io::Write; + +fn main() { + match std::env::var("RUST_LOG_STYLE") { + Ok(s) if s == "SYSTEMD" => env_logger::builder() + .format(|buf, record| { + writeln!( + buf, + "<{}>{}: {}", + match record.level() { + log::Level::Error => 3, + log::Level::Warn => 4, + log::Level::Info => 6, + log::Level::Debug => 7, + log::Level::Trace => 7, + }, + record.target(), + record.args() + ) + }) + .init(), + _ => env_logger::init(), + }; +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/filter/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/filter/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/filter/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/filter/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -762,7 +762,7 @@ #[test] fn parse_spec_blank_level_isolated_comma_only() { // The spec should contain zero or more comma-separated string slices, - // so a comma-only string should be interpretted as two empty strings + // so a comma-only string should be interpreted as two empty strings // (which should both be treated as invalid, so ignored). let (dirs, filter) = parse_spec(","); // should be ignored assert_eq!(dirs.len(), 0); @@ -772,7 +772,7 @@ #[test] fn parse_spec_blank_level_isolated_comma_blank() { // The spec should contain zero or more comma-separated string slices, - // so this bogus spec should be interpretted as containing one empty + // so this bogus spec should be interpreted as containing one empty // string and one blank string. Both should both be treated as // invalid, so ignored. let (dirs, filter) = parse_spec(", "); // should be ignored @@ -783,7 +783,7 @@ #[test] fn parse_spec_blank_level_isolated_blank_comma() { // The spec should contain zero or more comma-separated string slices, - // so this bogus spec should be interpretted as containing one blank + // so this bogus spec should be interpreted as containing one blank // string and one empty string. Both should both be treated as // invalid, so ignored. let (dirs, filter) = parse_spec(" ,"); // should be ignored diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -202,9 +202,9 @@ } } -#[cfg(feature = "termcolor")] +#[cfg(feature = "color")] type SubtleStyle = StyledValue<'static, &'static str>; -#[cfg(not(feature = "termcolor"))] +#[cfg(not(feature = "color"))] type SubtleStyle = &'static str; /// The default format. @@ -233,7 +233,7 @@ } fn subtle_style(&self, text: &'static str) -> SubtleStyle { - #[cfg(feature = "termcolor")] + #[cfg(feature = "color")] { self.buf .style() @@ -242,7 +242,7 @@ .clone() .into_value(text) } - #[cfg(not(feature = "termcolor"))] + #[cfg(not(feature = "color"))] { text } @@ -268,11 +268,11 @@ } let level = { - #[cfg(feature = "termcolor")] + #[cfg(feature = "color")] { self.buf.default_styled_level(record.level()) } - #[cfg(not(feature = "termcolor"))] + #[cfg(not(feature = "color"))] { record.level() } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/atty.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/atty.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/atty.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/atty.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,24 +1,25 @@ /* This internal module contains the terminal detection implementation. -If the `atty` crate is available then we use it to detect whether we're -attached to a particular TTY. If the `atty` crate is not available we -assume we're not attached to anything. This effectively prevents styles -from being printed. +If the `auto-color` feature is enabled then we detect whether we're attached to a particular TTY. +Otherwise, assume we're not attached to anything. This effectively prevents styles from being +printed. */ -#[cfg(feature = "atty")] +#[cfg(feature = "auto-color")] mod imp { + use is_terminal::IsTerminal; + pub(in crate::fmt) fn is_stdout() -> bool { - atty::is(atty::Stream::Stdout) + std::io::stdout().is_terminal() } pub(in crate::fmt) fn is_stderr() -> bool { - atty::is(atty::Stream::Stderr) + std::io::stderr().is_terminal() } } -#[cfg(not(feature = "atty"))] +#[cfg(not(feature = "auto-color"))] mod imp { pub(in crate::fmt) fn is_stdout() -> bool { false diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -165,6 +165,7 @@ } /// Whether or not to capture logs for `cargo test`. + #[allow(clippy::wrong_self_convention)] pub(crate) fn is_test(&mut self, is_test: bool) -> &mut Self { self.is_test = is_test; self diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/extern_impl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/extern_impl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/extern_impl.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/extern_impl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -107,7 +107,7 @@ pipe: Box>, ) -> Self { BufferWriter { - // The inner Buffer is never printed from, but it is still needed to handle coloring and other formating + // The inner Buffer is never printed from, but it is still needed to handle coloring and other formatting inner: termcolor::BufferWriter::stderr(write_style.into_color_choice()), uncolored_target: Some(WritableTarget::Pipe(pipe)), } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/fmt/writer/termcolor/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -5,8 +5,8 @@ The terminal printing is shimmed when the `termcolor` crate is not available. */ -#[cfg_attr(feature = "termcolor", path = "extern_impl.rs")] -#[cfg_attr(not(feature = "termcolor"), path = "shim_impl.rs")] +#[cfg_attr(feature = "color", path = "extern_impl.rs")] +#[cfg_attr(not(feature = "color"), path = "shim_impl.rs")] mod imp; pub(in crate::fmt) use self::imp::*; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/env_logger/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/env_logger/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -97,7 +97,7 @@ //! ``` //! //! The log target is typically equal to the path of the module the message -//! in question originated from, though it can be overriden. +//! in question originated from, though it can be overridden. //! //! The path is rooted in the name of the crate it was compiled for, so if //! your program is in a file called, for example, `hello.rs`, the path would @@ -907,7 +907,7 @@ fn log(&self, record: &Record) { if self.matches(record) { // Log records are written to a thread-local buffer before being printed - // to the terminal. We clear these buffers afterwards, but they aren't shrinked + // to the terminal. We clear these buffers afterwards, but they aren't shrunk // so will always at least have capacity for the largest log record formatted // on that thread. // @@ -1168,7 +1168,7 @@ /// ``` /// use env_logger::{Builder, Env}; /// -/// # fn run() -> Result<(), Box<::std::error::Error>> { +/// # fn run() -> Result<(), Box> { /// let env = Env::new().filter("MY_LOG").write_style("MY_LOG_STYLE"); /// /// env_logger::try_init_from_env(env)?; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,33 @@ +# 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] +name = "errno" +version = "0.2.8" +authors = ["Chris Wong "] +description = "Cross-platform interface to the `errno` variable." +documentation = "https://docs.rs/errno" +categories = ["os"] +license = "MIT/Apache-2.0" +repository = "https://github.com/lambda-fairy/rust-errno" + +[features] +default = ["std"] +std = [] +[target."cfg(target_os=\"hermit\")".dependencies.libc] +version = "0.2" +[target."cfg(target_os=\"wasi\")".dependencies.libc] +version = "0.2" +[target."cfg(unix)".dependencies.libc] +version = "0.2" +[target."cfg(windows)".dependencies.winapi] +version = "0.3" +features = ["errhandlingapi", "minwindef", "ntdef", "winbase"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/CHANGELOG.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/CHANGELOG.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,9 @@ +# [Unreleased] + +# [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.2.8...HEAD +[0.2.8]: https://github.com/lambda-fairy/rust-errno/compare/v0.2.7...v0.2.8 diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/debian/patches/no-dragonfly.patch cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/debian/patches/no-dragonfly.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/debian/patches/no-dragonfly.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/debian/patches/no-dragonfly.patch 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -22,8 +22,6 @@ repository = "https://github.com/lambda- + [features] + default = ["std"] + std = [] +-[target."cfg(target_os=\"dragonfly\")".dependencies.errno-dragonfly] +-version = "0.1.1" + [target."cfg(target_os=\"hermit\")".dependencies.libc] + version = "0.2" + [target."cfg(target_os=\"wasi\")".dependencies.libc] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +no-dragonfly.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,201 @@ + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,25 @@ +Copyright (c) 2014 Chris Wong + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,38 @@ +# errno [![CI](https://github.com/lambda-fairy/rust-errno/actions/workflows/main.yml/badge.svg)](https://github.com/lambda-fairy/rust-errno/actions/workflows/main.yml) [![Cargo](https://img.shields.io/crates/v/errno.svg)](https://crates.io/crates/errno) + +Cross-platform interface to the [`errno`][errno] variable. Works on Rust 1.13 or newer. + +Documentation is available at . + +[errno]: https://en.wikipedia.org/wiki/Errno.h + + +## Dependency + +Add to your `Cargo.toml`: + +```toml +[dependencies] +errno = "*" +libc = "*" +``` + + +## Examples + +```rust +extern crate errno; +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); +``` diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/hermit.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/hermit.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/hermit.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/hermit.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,32 @@ +//! Implementation of `errno` functionality for RustyHermit. +//! +//! Currently, the error handling in RustyHermit isn't clearly +//! defined. At the current stage of RustyHermit, only a placeholder +//! is provided to be compatible to the classical errno interface. + +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use Errno; + +pub fn with_description(_err: Errno, callback: F) -> T where + F: FnOnce(Result<&str, Errno>) -> T +{ + callback(Ok("unknown error")) +} + +pub const STRERROR_NAME: &'static str = "strerror_r"; + +pub fn errno() -> Errno { + Errno(0) +} + +pub fn set_errno(_: Errno) { +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,151 @@ +//! 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(target_os = "wasi", feature(thread_local))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(unix)] extern crate libc; +#[cfg(windows)] extern crate winapi; +#[cfg(target_os = "dragonfly")] extern crate errno_dragonfly; +#[cfg(target_os = "wasi")] extern crate libc; +#[cfg(target_os = "hermit")] extern crate libc; + +#[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; + +#[cfg(feature = "std")] +use std::fmt; +#[cfg(feature = "std")] +use std::io; +#[cfg(feature = "std")] +use std::error::Error; + +/// 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); + +#[cfg(feature = "std")] +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() + }) + } +} + +#[cfg(feature = "std")] +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 Into for Errno { + fn into(self) -> i32 { + self.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 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 { + "Operation not permitted" + }; + + set_errno(Errno(1)); + + assert_eq!(errno().to_string(), expect); + assert_eq!( + format!("{:?}", errno()), + format!("Errno {{ code: 1, description: Some({:?}) }}", 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/unix.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/unix.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/unix.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/unix.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,79 @@ +//! 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[cfg(feature = "std")] +use std::ffi::CStr; +use libc::c_int; +#[cfg(feature = "std")] +use libc::{self, c_char}; +#[cfg(target_os = "dragonfly")] +use errno_dragonfly::errno_location; + +use Errno; + +#[cfg(feature = "std")] +pub fn with_description(err: Errno, callback: F) -> T where + F: FnOnce(Result<&str, Errno>) -> T +{ + let mut buf = [0 as c_char; 1024]; + unsafe { + if strerror_r(err.0, buf.as_mut_ptr(), buf.len() as libc::size_t) < 0 { + let fm_err = errno(); + if fm_err != Errno(libc::ERANGE) { + return callback(Err(fm_err)); + } + } + } + let c_str = unsafe { CStr::from_ptr(buf.as_ptr()) }; + callback(Ok(&String::from_utf8_lossy(c_str.to_bytes()))) +} + +#[cfg(feature = "std")] +pub const STRERROR_NAME: &'static str = "strerror_r"; + +pub fn errno() -> Errno { + unsafe { + Errno(*errno_location()) + } +} + +pub fn set_errno(Errno(errno): Errno) { + unsafe { + *errno_location() = errno; + } +} + +extern { + #[cfg(not(target_os = "dragonfly"))] + #[cfg_attr(any(target_os = "macos", + target_os = "ios", + target_os = "freebsd"), + link_name = "__error")] + #[cfg_attr(any(target_os = "openbsd", + target_os = "netbsd", + target_os = "bitrig", + target_os = "android"), + link_name = "__errno")] + #[cfg_attr(any(target_os = "solaris", + target_os = "illumos"), + link_name = "___errno")] + #[cfg_attr(target_os = "linux", + link_name = "__errno_location")] + fn errno_location() -> *mut c_int; + + #[cfg(feature = "std")] + #[cfg_attr(target_os = "linux", link_name = "__xpg_strerror_r")] + fn strerror_r(errnum: c_int, buf: *mut c_char, + buflen: libc::size_t) -> c_int; +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/wasi.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/wasi.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/wasi.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/wasi.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,65 @@ +//! Implementation of `errno` functionality for WASI. +//! +//! Adapted from `unix.rs`. + +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[cfg(feature = "std")] +use std::ffi::CStr; +use libc::c_int; +#[cfg(feature = "std")] +use libc::{self, c_char}; + +use Errno; + +#[cfg(feature = "std")] +pub fn with_description(err: Errno, callback: F) -> T where + F: FnOnce(Result<&str, Errno>) -> T +{ + let mut buf = [0 as c_char; 1024]; + unsafe { + if strerror_r(err.0, buf.as_mut_ptr(), buf.len() as libc::size_t) < 0 { + let fm_err = errno(); + if fm_err != Errno(libc::ERANGE) { + return callback(Err(fm_err)); + } + } + } + let c_str = unsafe { CStr::from_ptr(buf.as_ptr()) }; + callback(Ok(&String::from_utf8_lossy(c_str.to_bytes()))) +} + +#[cfg(feature = "std")] +pub const STRERROR_NAME: &'static str = "strerror_r"; + +pub fn errno() -> Errno { + // libc_errno is thread-local, so simply read its value. + unsafe { + Errno(libc_errno) + } +} + +pub fn set_errno(Errno(new_errno): Errno) { + // libc_errno is thread-local, so simply assign to it. + unsafe { + libc_errno = new_errno; + } +} + +extern { + #[thread_local] + #[link_name = "errno"] + static mut libc_errno: c_int; + + #[cfg(feature = "std")] + fn strerror_r(errnum: c_int, buf: *mut c_char, + buflen: libc::size_t) -> c_int; +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/windows.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/windows.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/errno/src/windows.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/errno/src/windows.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,70 @@ +//! Implementation of `errno` functionality for Windows. +//! +//! Adapted from `src/libstd/sys/windows/os.rs` in the Rust distribution. + +// Copyright 2014 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[cfg(feature = "std")] +use std::ptr; +use winapi::shared::minwindef::DWORD; +#[cfg(feature = "std")] +use winapi::shared::ntdef::WCHAR; +#[cfg(feature = "std")] +use winapi::um::winbase::{FORMAT_MESSAGE_FROM_SYSTEM, FORMAT_MESSAGE_IGNORE_INSERTS}; + +use Errno; + +#[cfg(feature = "std")] +pub fn with_description(err: Errno, callback: F) -> T where + F: FnOnce(Result<&str, Errno>) -> T +{ + // This value is calculated from the macro + // MAKELANGID(LANG_SYSTEM_DEFAULT, SUBLANG_SYS_DEFAULT) + let lang_id = 0x0800 as DWORD; + + let mut buf = [0 as WCHAR; 2048]; + + unsafe { + let res = ::winapi::um::winbase::FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + ptr::null_mut(), + err.0 as DWORD, + lang_id, + buf.as_mut_ptr(), + buf.len() as DWORD, + ptr::null_mut()); + if res == 0 { + // Sometimes FormatMessageW can fail e.g. system doesn't like lang_id + let fm_err = errno(); + return callback(Err(fm_err)); + } + + let msg = String::from_utf16_lossy(&buf[..res as usize]); + // Trim trailing CRLF inserted by FormatMessageW + #[allow(deprecated)] // TODO: remove when MSRV >= 1.30 + callback(Ok(msg.trim_right())) + } +} + +#[cfg(feature = "std")] +pub const STRERROR_NAME: &'static str = "FormatMessageW"; + +pub fn errno() -> Errno { + unsafe { + Errno(::winapi::um::errhandlingapi::GetLastError() as i32) + } +} + +pub fn set_errno(Errno(errno): Errno) { + unsafe { + ::winapi::um::errhandlingapi::SetLastError(errno as DWORD) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/benches/bench.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/benches/bench.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/benches/bench.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/benches/bench.rs 2023-02-17 23:07:30.000000000 +0000 @@ -73,3 +73,26 @@ sum }) } + +#[bench] +fn fill(b: &mut Bencher) { + let rng = fastrand::Rng::new(); + b.iter(|| { + // Pick a size that isn't divisble by 8. + let mut bytes = [0u8; 367]; + rng.fill(&mut bytes); + bytes + }) +} + +#[bench] +fn fill_naive(b: &mut Bencher) { + let rng = fastrand::Rng::new(); + b.iter(|| { + let mut bytes = [0u8; 367]; + for item in &mut bytes { + *item = rng.u8(..); + } + bytes + }) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"} \ No newline at end of file +{"files":{},"package":"e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,7 +13,7 @@ edition = "2018" rust-version = "1.34" name = "fastrand" -version = "1.8.0" +version = "1.9.0" authors = ["Stjepan Glavina "] exclude = ["/.*"] description = "A simple and fast random number generator" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/CHANGELOG.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/CHANGELOG.md 2023-02-17 23:07:30.000000000 +0000 @@ -1,3 +1,8 @@ +# Version 1.9.0 + +- Add `Rng::fill()` (#35, #43) +- Add `#[must_use]` to `Rng::with_seed()` (#46) + # Version 1.8.0 - Add `get_seed()` and `Rng::get_seed()` (#33) diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/debian/patches/no-wasm.patch cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/debian/patches/no-wasm.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/debian/patches/no-wasm.patch 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/debian/patches/no-wasm.patch 2023-02-17 23:07:30.000000000 +0000 @@ -7,16 +7,16 @@ [dev-dependencies.wyhash] version = "0.5" - --[target."cfg(target_arch = \"wasm32\")".dependencies.instant] +-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dependencies.instant] -version = "0.1" - --[target."cfg(target_arch = \"wasm32\")".dev-dependencies.getrandom] +-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.getrandom] -version = "0.2" -features = ["js"] - --[target."cfg(target_arch = \"wasm32\")".dev-dependencies.instant] +-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.instant] -version = "0.1" -features = ["wasm-bindgen"] - --[target."cfg(target_arch = \"wasm32\")".dev-dependencies.wasm-bindgen-test] +-[target."cfg(all(target_arch = \"wasm32\", not(target_os = \"wasi\")))".dev-dependencies.wasm-bindgen-test] -version = "0.3" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -70,13 +70,14 @@ use std::cell::Cell; use std::collections::hash_map::DefaultHasher; +use std::convert::TryInto; use std::hash::{Hash, Hasher}; use std::ops::{Bound, RangeBounds}; use std::thread; -#[cfg(target_arch = "wasm32")] +#[cfg(all(target_arch = "wasm32", not(target_os = "wasi")))] use instant::Instant; -#[cfg(not(target_arch = "wasm32"))] +#[cfg(not(all(target_arch = "wasm32", not(target_os = "wasi"))))] use std::time::Instant; /// A random number generator. @@ -281,6 +282,7 @@ /// Creates a new random number generator with the initial seed. #[inline] + #[must_use = "this creates a new instance of `Rng`; if you want to initialize the thread-local generator, use `fastrand::seed()` instead"] pub fn with_seed(seed: u64) -> Self { let rng = Rng(Cell::new(0)); @@ -441,6 +443,30 @@ } } + /// Fill a byte slice with random data. + #[inline] + pub fn fill(&self, slice: &mut [u8]) { + // We fill the slice by chunks of 8 bytes, or one block of + // WyRand output per new state. + let mut chunks = slice.chunks_exact_mut(core::mem::size_of::()); + for chunk in chunks.by_ref() { + let n = self.gen_u64().to_ne_bytes(); + // Safe because the chunks are always 8 bytes exactly. + chunk.copy_from_slice(&n); + } + + let remainder = chunks.into_remainder(); + + // Any remainder will always be less than 8 bytes. + if !remainder.is_empty() { + // Generate one last block of 8 bytes of entropy + let n = self.gen_u64().to_ne_bytes(); + + // Use the remaining length to copy from block + remainder.copy_from_slice(&n[..remainder.len()]); + } + } + rng_integer!( u8, u8, @@ -528,7 +554,7 @@ /// Panics if the range is empty. #[inline] pub fn char(&self, range: impl RangeBounds) -> char { - use std::convert::{TryFrom, TryInto}; + use std::convert::TryFrom; let panic_empty_range = || { panic!( diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/tests/smoke.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/tests/smoke.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/fastrand/tests/smoke.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/fastrand/tests/smoke.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,11 +1,10 @@ -#[cfg(target_arch = "wasm32")] -use wasm_bindgen_test::*; +#[cfg(all(target_family = "wasm", not(target_os = "wasi")))] +use wasm_bindgen_test::wasm_bindgen_test as test; -#[cfg(target_arch = "wasm32")] +#[cfg(all(target_family = "wasm", not(target_os = "wasi")))] wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn bool() { for x in &[false, true] { while fastrand::bool() != *x {} @@ -13,7 +12,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u8() { for x in 0..10 { while fastrand::u8(..10) != x {} @@ -25,7 +23,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn i8() { for x in -128..-120 { while fastrand::i8(..-120) != x {} @@ -37,7 +34,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u32() { for n in 1u32..10_000 { let n = n.wrapping_mul(n); @@ -51,7 +47,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u64() { for n in 1u64..10_000 { let n = n.wrapping_mul(n); @@ -66,7 +61,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn u128() { for n in 1u128..10_000 { let n = n.wrapping_mul(n); @@ -82,7 +76,18 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] +fn fill() { + let r = fastrand::Rng::new(); + let mut a = [0u8; 64]; + let mut b = [0u8; 64]; + + r.fill(&mut a); + r.fill(&mut b); + + assert_ne!(a, b); +} + +#[test] fn rng() { let r = fastrand::Rng::new(); @@ -96,7 +101,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn rng_init() { let a = fastrand::Rng::new(); let b = fastrand::Rng::new(); @@ -108,7 +112,6 @@ } #[test] -#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] fn with_seed() { let a = fastrand::Rng::with_seed(7); let b = fastrand::Rng::new(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9"} \ No newline at end of file +{"files":{},"package":"8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -12,7 +12,7 @@ [package] edition = "2018" name = "filetime" -version = "0.2.19" +version = "0.2.20" authors = ["Alex Crichton "] description = """ Platform-agnostic accessors of timestamps in File metadata @@ -40,7 +40,7 @@ version = "0.2.27" #[target."cfg(windows)".dependencies.windows-sys] -#version = "0.42.0" +#version = "0.45.0" #features = [ # "Win32_Foundation", # "Win32_Storage_FileSystem", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/debian/patches/disable-windows.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/debian/patches/disable-windows.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/filetime/debian/patches/disable-windows.diff 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/filetime/debian/patches/disable-windows.diff 2023-02-17 23:07:30.000000000 +0000 @@ -5,13 +5,13 @@ version = "0.2.27" -[target."cfg(windows)".dependencies.windows-sys] --version = "0.42.0" +-version = "0.45.0" -features = [ - "Win32_Foundation", - "Win32_Storage_FileSystem", -] +#[target."cfg(windows)".dependencies.windows-sys] -+#version = "0.42.0" ++#version = "0.45.0" +#features = [ +# "Win32_Foundation", +# "Win32_Storage_FileSystem", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,48 @@ +# 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" +name = "hermit-abi" +version = "0.3.1" +authors = ["Stefan Lankes"] +description = "Hermit system calls definitions." +readme = "README.md" +keywords = [ + "unikernel", + "libos", +] +categories = ["os"] +license = "MIT OR Apache-2.0" +repository = "https://github.com/hermitcore/rusty-hermit" +resolver = "1" + +[dependencies.alloc] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-alloc" + +[dependencies.compiler_builtins] +version = "0.1" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[features] +default = [] +rustc-dep-of-std = [ + "core", + "alloc", + "compiler_builtins/rustc-dep-of-std", +] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,201 @@ + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,22 @@ +# hermit-abi + +[![Crates.io](https://img.shields.io/crates/v/hermit-abi.svg)](https://crates.io/crates/hermit-abi) +[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://hermitcore.github.io/rusty-hermit/hermit_abi/) +[![License](https://img.shields.io/crates/l/hermit-abi.svg)](https://img.shields.io/crates/l/hermit-abi.svg) + +This is small interface to call functions from the unikernel [RustyHermit](https://github.com/hermitcore/libhermit-rs). + +Please read the README of [RustyHermit](https://github.com/hermitcore/libhermit-rs) for more information. + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) + +at your option. + +## Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,397 @@ +/// Operation not permitted +pub const EPERM: i32 = 1; + +/// No such file or directory +pub const ENOENT: i32 = 2; + +/// No such process +pub const ESRCH: i32 = 3; + +/// Interrupted system call +pub const EINTR: i32 = 4; + +/// I/O error +pub const EIO: i32 = 5; + +/// No such device or address +pub const ENXIO: i32 = 6; + +/// Argument list too long +pub const E2BIG: i32 = 7; + +/// Exec format error +pub const ENOEXEC: i32 = 8; + +/// Bad file number +pub const EBADF: i32 = 9; + +/// No child processes +pub const ECHILD: i32 = 10; + +/// Try again +pub const EAGAIN: i32 = 11; + +/// Out of memory +pub const ENOMEM: i32 = 12; + +/// Permission denied +pub const EACCES: i32 = 13; + +/// Bad address +pub const EFAULT: i32 = 14; + +/// Block device required +pub const ENOTBLK: i32 = 15; + +/// Device or resource busy +pub const EBUSY: i32 = 16; + +/// File exists +pub const EEXIST: i32 = 17; + +/// Cross-device link +pub const EXDEV: i32 = 18; + +/// No such device +pub const ENODEV: i32 = 19; + +/// Not a directory +pub const ENOTDIR: i32 = 20; + +/// Is a directory +pub const EISDIR: i32 = 21; + +/// Invalid argument +pub const EINVAL: i32 = 22; + +/// File table overflow +pub const ENFILE: i32 = 23; + +/// Too many open files +pub const EMFILE: i32 = 24; + +/// Not a typewriter +pub const ENOTTY: i32 = 25; + +/// Text file busy +pub const ETXTBSY: i32 = 26; + +/// File too large +pub const EFBIG: i32 = 27; + +/// No space left on device +pub const ENOSPC: i32 = 28; + +/// Illegal seek +pub const ESPIPE: i32 = 29; + +/// Read-only file system +pub const EROFS: i32 = 30; + +/// Too many links +pub const EMLINK: i32 = 31; + +/// Broken pipe +pub const EPIPE: i32 = 32; + +/// Math argument out of domain of func +pub const EDOM: i32 = 33; + +/// Math result not representable +pub const ERANGE: i32 = 34; + +/// Resource deadlock would occur +pub const EDEADLK: i32 = 35; + +/// File name too long +pub const ENAMETOOLONG: i32 = 36; + +/// No record locks available +pub const ENOLCK: i32 = 37; + +/// Function not implemented +pub const ENOSYS: i32 = 38; + +/// Directory not empty +pub const ENOTEMPTY: i32 = 39; + +/// Too many symbolic links encountered +pub const ELOOP: i32 = 40; + +/// Operation would block +pub const EWOULDBLOCK: i32 = EAGAIN; + +/// No message of desired type +pub const ENOMSG: i32 = 42; + +/// Identifier removed +pub const EIDRM: i32 = 43; + +/// Channel number out of range +pub const ECHRNG: i32 = 44; + +/// Level 2 not synchronized +pub const EL2NSYNC: i32 = 45; + +/// Level 3 halted +pub const EL3HLT: i32 = 46; + +/// Level 3 reset +pub const EL3RST: i32 = 47; + +/// Link number out of range +pub const ELNRNG: i32 = 48; + +/// Protocol driver not attached +pub const EUNATCH: i32 = 49; + +/// No CSI structure available +pub const ENOCSI: i32 = 50; + +/// Level 2 halted +pub const EL2HLT: i32 = 51; + +/// Invalid exchange +pub const EBADE: i32 = 52; + +/// Invalid request descriptor +pub const EBADR: i32 = 53; + +/// Exchange full +pub const EXFULL: i32 = 54; + +/// No anode +pub const ENOANO: i32 = 55; + +/// Invalid request code +pub const EBADRQC: i32 = 56; + +/// Invalid slot +pub const EBADSLT: i32 = 57; + +pub const EDEADLOCK: i32 = EDEADLK; + +/// Bad font file format +pub const EBFONT: i32 = 59; + +/// Device not a stream +pub const ENOSTR: i32 = 60; + +/// No data available +pub const ENODATA: i32 = 61; + +/// Timer expired +pub const ETIME: i32 = 62; + +/// Out of streams resources +pub const ENOSR: i32 = 63; + +/// Machine is not on the network +pub const ENONET: i32 = 64; + +/// Package not installed +pub const ENOPKG: i32 = 65; + +/// Object is remote +pub const EREMOTE: i32 = 66; + +/// Link has been severed +pub const ENOLINK: i32 = 67; + +/// Advertise error +pub const EADV: i32 = 68; + +/// Srmount error +pub const ESRMNT: i32 = 69; + +/// Communication error on send +pub const ECOMM: i32 = 70; + +/// Protocol error +pub const EPROTO: i32 = 71; + +/// Multihop attempted +pub const EMULTIHOP: i32 = 72; + +/// RFS specific error +pub const EDOTDOT: i32 = 73; + +/// Not a data message +pub const EBADMSG: i32 = 74; + +/// Value too large for defined data type +pub const EOVERFLOW: i32 = 75; + +/// Name not unique on network +pub const ENOTUNIQ: i32 = 76; + +/// File descriptor in bad state +pub const EBADFD: i32 = 77; + +/// Remote address changed +pub const EREMCHG: i32 = 78; + +/// Can not access a needed shared library +pub const ELIBACC: i32 = 79; + +/// Accessing a corrupted shared library +pub const ELIBBAD: i32 = 80; + +/// .lib section in a.out corrupted +pub const ELIBSCN: i32 = 81; + +/// Attempting to link in too many shared libraries +pub const ELIBMAX: i32 = 82; + +/// Cannot exec a shared library directly +pub const ELIBEXEC: i32 = 83; + +/// Illegal byte sequence +pub const EILSEQ: i32 = 84; + +/// Interrupted system call should be restarted +pub const ERESTART: i32 = 85; + +/// Streams pipe error +pub const ESTRPIPE: i32 = 86; + +/// Too many users +pub const EUSERS: i32 = 87; + +/// Socket operation on non-socket +pub const ENOTSOCK: i32 = 88; + +/// Destination address required +pub const EDESTADDRREQ: i32 = 89; + +/// Message too long +pub const EMSGSIZE: i32 = 90; + +/// Protocol wrong type for socket +pub const EPROTOTYPE: i32 = 91; + +/// Protocol not available +pub const ENOPROTOOPT: i32 = 92; + +/// Protocol not supported +pub const EPROTONOSUPPORT: i32 = 93; + +/// Socket type not supported +pub const ESOCKTNOSUPPORT: i32 = 94; + +/// Operation not supported on transport endpoint +pub const EOPNOTSUPP: i32 = 95; + +/// Protocol family not supported +pub const EPFNOSUPPORT: i32 = 96; + +/// Address family not supported by protocol +pub const EAFNOSUPPORT: i32 = 97; + +/// Address already in use +pub const EADDRINUSE: i32 = 98; + +/// Cannot assign requested address +pub const EADDRNOTAVAIL: i32 = 99; + +/// Network is down +pub const ENETDOWN: i32 = 100; + +/// Network is unreachable +pub const ENETUNREACH: i32 = 101; + +/// Network dropped connection because of reset +pub const ENETRESET: i32 = 102; + +/// Software caused connection abort +pub const ECONNABORTED: i32 = 103; + +/// Connection reset by peer +pub const ECONNRESET: i32 = 104; + +/// No buffer space available +pub const ENOBUFS: i32 = 105; + +/// Transport endpoint is already connected +pub const EISCONN: i32 = 106; + +/// Transport endpoint is not connected +pub const ENOTCONN: i32 = 107; + +/// Cannot send after transport endpoint shutdown +pub const ESHUTDOWN: i32 = 108; + +/// Too many references: cannot splice +pub const ETOOMANYREFS: i32 = 109; + +/// Connection timed out +pub const ETIMEDOUT: i32 = 110; + +/// Connection refused +pub const ECONNREFUSED: i32 = 111; + +/// Host is down +pub const EHOSTDOWN: i32 = 112; + +/// No route to host +pub const EHOSTUNREACH: i32 = 113; + +/// Operation already in progress +pub const EALREADY: i32 = 114; + +/// Operation now in progress +pub const EINPROGRESS: i32 = 115; + +/// Stale file handle +pub const ESTALE: i32 = 116; + +/// Structure needs cleaning +pub const EUCLEAN: i32 = 117; + +/// Not a XENIX named type file +pub const ENOTNAM: i32 = 118; + +/// No XENIX semaphores available +pub const ENAVAIL: i32 = 119; + +/// Is a named type file +pub const EISNAM: i32 = 120; + +/// Remote I/O error +pub const EREMOTEIO: i32 = 121; + +/// Quota exceeded +pub const EDQUOT: i32 = 122; + +/// No medium found +pub const ENOMEDIUM: i32 = 123; + +/// Wrong medium type +pub const EMEDIUMTYPE: i32 = 124; + +/// Operation Canceled +pub const ECANCELED: i32 = 125; + +/// Required key not available +pub const ENOKEY: i32 = 126; + +/// Key has expired +pub const EKEYEXPIRED: i32 = 127; + +/// Key has been revoked +pub const EKEYREVOKED: i32 = 128; + +/// Key was rejected by service +pub const EKEYREJECTED: i32 = 129; + +/// Robust mutexes: Owner died +pub const EOWNERDEAD: i32 = 130; + +/// Robust mutexes: State not recoverable +pub const ENOTRECOVERABLE: i32 = 131; + +/// Robust mutexes: Operation not possible due to RF-kill +pub const ERFKILL: i32 = 132; + +/// Robust mutexes: Memory page has hardware error +pub const EHWPOISON: i32 = 133; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,612 @@ +//! `hermit-abi` is small interface to call functions from the unikernel +//! [RustyHermit](https://github.com/hermitcore/libhermit-rs). + +#![no_std] +#![allow(nonstandard_style)] +#![allow(clippy::missing_safety_doc)] +#![allow(clippy::result_unit_err)] + +pub mod errno; +pub mod tcplistener; +pub mod tcpstream; + +use core::ffi::{c_int, c_void}; + +/// A thread handle type +pub type Tid = u32; + +/// Maximum number of priorities +pub const NO_PRIORITIES: usize = 31; + +/// Priority of a thread +#[derive(PartialEq, Eq, PartialOrd, Ord, Debug, Clone, Copy)] +pub struct Priority(u8); + +impl Priority { + pub const fn into(self) -> u8 { + self.0 + } + + pub const fn from(x: u8) -> Self { + Priority(x) + } +} + +pub const HIGH_PRIO: Priority = Priority::from(3); +pub const NORMAL_PRIO: Priority = Priority::from(2); +pub const LOW_PRIO: Priority = Priority::from(1); + +/// A handle, identifying a socket +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default, Hash)] +pub struct Handle(usize); + +pub const NSEC_PER_SEC: u64 = 1_000_000_000; +pub const FUTEX_RELATIVE_TIMEOUT: u32 = 1; +pub const CLOCK_REALTIME: u64 = 1; +pub const CLOCK_MONOTONIC: u64 = 4; +pub const STDIN_FILENO: c_int = 0; +pub const STDOUT_FILENO: c_int = 1; +pub const STDERR_FILENO: c_int = 2; +pub const O_RDONLY: i32 = 0o0; +pub const O_WRONLY: i32 = 0o1; +pub const O_RDWR: i32 = 0o2; +pub const O_CREAT: i32 = 0o100; +pub const O_EXCL: i32 = 0o200; +pub const O_TRUNC: i32 = 0o1000; +pub const O_APPEND: i32 = 0o2000; + +/// returns true if file descriptor `fd` is a tty +pub fn isatty(_fd: c_int) -> bool { + false +} + +/// `timespec` is used by `clock_gettime` to retrieve the +/// current time +#[derive(Copy, Clone, Debug)] +#[repr(C)] +pub struct timespec { + /// seconds + pub tv_sec: i64, + /// nanoseconds + pub tv_nsec: i64, +} + +/// Internet protocol version. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +pub enum Version { + Unspecified, + Ipv4, + Ipv6, +} + +/// A four-octet IPv4 address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] +pub struct Ipv4Address(pub [u8; 4]); + +/// A sixteen-octet IPv6 address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Default)] +pub struct Ipv6Address(pub [u8; 16]); + +/// An internetworking address. +#[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +pub enum IpAddress { + /// An unspecified address. + /// May be used as a placeholder for storage where the address is not assigned yet. + Unspecified, + /// An IPv4 address. + Ipv4(Ipv4Address), + /// An IPv6 address. + Ipv6(Ipv6Address), +} + +/// The largest number `rand` will return +pub const RAND_MAX: u64 = 2_147_483_647; + +pub const AF_INET: i32 = 0; +pub const AF_INET6: i32 = 1; +pub const IPPROTO_IP: i32 = 0; +pub const IPPROTO_IPV6: i32 = 41; +pub const IPPROTO_UDP: i32 = 17; +pub const IPPROTO_TCP: i32 = 6; +pub const IPV6_ADD_MEMBERSHIP: i32 = 12; +pub const IPV6_DROP_MEMBERSHIP: i32 = 13; +pub const IPV6_MULTICAST_LOOP: i32 = 19; +pub const IPV6_V6ONLY: i32 = 27; +pub const IP_TTL: i32 = 2; +pub const IP_MULTICAST_TTL: i32 = 5; +pub const IP_MULTICAST_LOOP: i32 = 7; +pub const IP_ADD_MEMBERSHIP: i32 = 3; +pub const IP_DROP_MEMBERSHIP: i32 = 4; +pub const SHUT_RD: i32 = 0; +pub const SHUT_WR: i32 = 1; +pub const SHUT_RDWR: i32 = 2; +pub const SOCK_DGRAM: i32 = 2; +pub const SOCK_STREAM: i32 = 1; +pub const SOL_SOCKET: i32 = 4095; +pub const SO_BROADCAST: i32 = 32; +pub const SO_ERROR: i32 = 4103; +pub const SO_RCVTIMEO: i32 = 4102; +pub const SO_REUSEADDR: i32 = 4; +pub const SO_SNDTIMEO: i32 = 4101; +pub const SO_LINGER: i32 = 128; +pub const TCP_NODELAY: i32 = 1; +pub const MSG_PEEK: i32 = 1; +pub const FIONBIO: i32 = 0x8008667eu32 as i32; +pub const EAI_NONAME: i32 = -2200; +pub const EAI_SERVICE: i32 = -2201; +pub const EAI_FAIL: i32 = -2202; +pub const EAI_MEMORY: i32 = -2203; +pub const EAI_FAMILY: i32 = -2204; +pub const POLLIN: i16 = 0x1; +pub const POLLPRI: i16 = 0x2; +pub const POLLOUT: i16 = 0x4; +pub const POLLERR: i16 = 0x8; +pub const POLLHUP: i16 = 0x10; +pub const POLLNVAL: i16 = 0x20; +pub const POLLRDNORM: i16 = 0x040; +pub const POLLRDBAND: i16 = 0x080; +pub const POLLRDHUP: i16 = 0x2000; +pub type sa_family_t = u8; +pub type socklen_t = u32; +pub type in_addr_t = u32; +pub type in_port_t = u16; +pub type time_t = i64; +pub type suseconds_t = i64; +pub type nfds_t = usize; + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_addr { + pub s_addr: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in6_addr { + pub s6_addr: [u8; 16], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr { + pub sa_len: u8, + pub sa_family: sa_family_t, + pub sa_data: [u8; 14], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { + pub sin_len: u8, + pub sin_family: sa_family_t, + pub sin_port: u16, + pub sin_addr: in_addr, + pub sin_zero: [u8; 8], +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in6 { + pub sin6_family: sa_family_t, + pub sin6_port: u16, + pub sin6_addr: in6_addr, + pub sin6_flowinfo: u32, + pub sin6_scope_id: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfo { + pub ai_flags: i32, + pub ai_family: i32, + pub ai_socktype: i32, + pub ai_protocol: i32, + pub ai_addrlen: socklen_t, + pub ai_addr: *mut sockaddr, + pub ai_canonname: *mut u8, + pub ai_next: *mut addrinfo, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_storage { + pub s2_len: u8, + pub ss_family: sa_family_t, + pub s2_data1: [i8; 2usize], + pub s2_data2: [u32; 3usize], +} + +#[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 ipv6_mreq { + pub ipv6mr_multiaddr: in6_addr, + pub ipv6mr_interface: u32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct linger { + pub l_onoff: i32, + pub l_linger: i32, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { + pub tv_sec: time_t, + pub tv_usec: suseconds_t, +} + +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pollfd { + pub fd: i32, /* file descriptor */ + pub events: i16, /* events to look for */ + pub revents: i16, /* events returned */ +} + +// sysmbols, which are part of the library operating system +extern "C" { + /// If the value at address matches the expected value, park the current thread until it is either + /// woken up with [`futex_wake`] (returns 0) or an optional timeout elapses (returns -ETIMEDOUT). + /// + /// Setting `timeout` to null means the function will only return if [`futex_wake`] is called. + /// Otherwise, `timeout` is interpreted as an absolute time measured with [`CLOCK_MONOTONIC`]. + /// If [`FUTEX_RELATIVE_TIMEOUT`] is set in `flags` the timeout is understood to be relative + /// to the current time. + /// + /// Returns -EINVAL if `address` is null, the timeout is negative or `flags` contains unknown values. + #[link_name = "sys_futex_wait"] + pub fn futex_wait( + address: *mut u32, + expected: u32, + timeout: *const timespec, + flags: u32, + ) -> i32; + + /// Wake `count` threads waiting on the futex at `address`. Returns the number of threads + /// woken up (saturates to `i32::MAX`). If `count` is `i32::MAX`, wake up all matching + /// waiting threads. If `count` is negative or `address` is null, returns -EINVAL. + #[link_name = "sys_futex_wake"] + pub fn futex_wake(address: *mut u32, count: i32) -> i32; + + /// sem_init() initializes the unnamed semaphore at the address + /// pointed to by `sem`. The `value` argument specifies the + /// initial value for the semaphore. + #[link_name = "sys_sem_init"] + pub fn sem_init(sem: *mut *const c_void, value: u32) -> i32; + + /// sem_destroy() frees the unnamed semaphore at the address + /// pointed to by `sem`. + #[link_name = "sys_sem_destroy"] + pub fn sem_destroy(sem: *const c_void) -> i32; + + /// sem_post() increments the semaphore pointed to by `sem`. + /// If the semaphore's value consequently becomes greater + /// than zero, then another thread blocked in a sem_wait call + /// will be woken up and proceed to lock the semaphore. + #[link_name = "sys_sem_post"] + pub fn sem_post(sem: *const c_void) -> i32; + + /// try to decrement a semaphore + /// + /// sem_trywait() is the same as sem_timedwait(), except that + /// if the decrement cannot be immediately performed, then call + /// returns a negative value instead of blocking. + #[link_name = "sys_sem_trywait"] + pub fn sem_trywait(sem: *const c_void) -> i32; + + /// decrement a semaphore + /// + /// sem_timedwait() decrements the semaphore pointed to by `sem`. + /// If the semaphore's value is greater than zero, then the + /// the function returns immediately. If the semaphore currently + /// has the value zero, then the call blocks until either + /// it becomes possible to perform the decrement of the time limit + /// to wait for the semaphore is expired. A time limit `ms` of + /// means infinity waiting time. + #[link_name = "sys_timedwait"] + pub fn sem_timedwait(sem: *const c_void, ms: u32) -> i32; + + /// Determines the id of the current thread + #[link_name = "sys_getpid"] + pub fn getpid() -> u32; + + /// cause normal termination and return `arg` + /// to the host system + #[link_name = "sys_exit"] + pub fn exit(arg: i32) -> !; + + /// cause abnormal termination + #[link_name = "sys_abort"] + pub fn abort() -> !; + + /// suspend execution for microsecond intervals + /// + /// The usleep() function suspends execution of the calling + /// thread for (at least) `usecs` microseconds. + #[link_name = "sys_usleep"] + pub fn usleep(usecs: u64); + + /// spawn a new thread + /// + /// spawn() starts a new thread. The new thread starts execution + /// by invoking `func(usize)`; `arg` is passed as the argument + /// to `func`. `prio` defines the priority of the new thread, + /// which can be between `LOW_PRIO` and `HIGH_PRIO`. + /// `core_id` defines the core, where the thread is located. + /// A negative value give the operating system the possibility + /// to select the core by its own. + #[link_name = "sys_spawn"] + pub fn spawn( + id: *mut Tid, + func: extern "C" fn(usize), + arg: usize, + prio: u8, + core_id: isize, + ) -> i32; + + /// spawn a new thread with user-specified stack size + /// + /// spawn2() starts a new thread. The new thread starts execution + /// by invoking `func(usize)`; `arg` is passed as the argument + /// to `func`. `prio` defines the priority of the new thread, + /// which can be between `LOW_PRIO` and `HIGH_PRIO`. + /// `core_id` defines the core, where the thread is located. + /// A negative value give the operating system the possibility + /// to select the core by its own. + /// In contrast to spawn(), spawn2() is able to define the + /// stack size. + #[link_name = "sys_spawn2"] + pub fn spawn2( + func: extern "C" fn(usize), + arg: usize, + prio: u8, + stack_size: usize, + core_id: isize, + ) -> Tid; + + /// join with a terminated thread + /// + /// The join() function waits for the thread specified by `id` + /// to terminate. + #[link_name = "sys_join"] + pub fn join(id: Tid) -> i32; + + /// yield the processor + /// + /// causes the calling thread to relinquish the CPU. The thread + /// is moved to the end of the queue for its static priority. + #[link_name = "sys_yield"] + pub fn yield_now(); + + /// get current time + /// + /// The clock_gettime() functions allow the calling thread + /// to retrieve the value used by a clock which is specified + /// by `clock_id`. + /// + /// `CLOCK_REALTIME`: the system's real time clock, + /// expressed as the amount of time since the Epoch. + /// + /// `CLOCK_MONOTONIC`: clock that increments monotonically, + /// tracking the time since an arbitrary point + #[link_name = "sys_clock_gettime"] + pub fn clock_gettime(clock_id: u64, tp: *mut timespec) -> i32; + + /// open and possibly create a file + /// + /// The open() system call opens the file specified by `name`. + /// If the specified file does not exist, it may optionally + /// be created by open(). + #[link_name = "sys_open"] + pub fn open(name: *const i8, flags: i32, mode: i32) -> i32; + + /// delete the file it refers to `name` + #[link_name = "sys_unlink"] + pub fn unlink(name: *const i8) -> i32; + + /// determines the number of activated processors + #[link_name = "sys_processor_count"] + pub fn get_processor_count() -> usize; + + #[link_name = "sys_malloc"] + pub fn malloc(size: usize, align: usize) -> *mut u8; + + #[doc(hidden)] + #[link_name = "sys_realloc"] + pub fn realloc(ptr: *mut u8, size: usize, align: usize, new_size: usize) -> *mut u8; + + #[doc(hidden)] + #[link_name = "sys_free"] + pub fn free(ptr: *mut u8, size: usize, align: usize); + + #[link_name = "sys_notify"] + pub fn notify(id: usize, count: i32) -> i32; + + #[doc(hidden)] + #[link_name = "sys_add_queue"] + pub fn add_queue(id: usize, timeout_ns: i64) -> i32; + + #[doc(hidden)] + #[link_name = "sys_wait"] + pub fn wait(id: usize) -> i32; + + #[doc(hidden)] + #[link_name = "sys_init_queue"] + pub fn init_queue(id: usize) -> i32; + + #[doc(hidden)] + #[link_name = "sys_destroy_queue"] + pub fn destroy_queue(id: usize) -> i32; + + /// initialize the network stack + #[link_name = "sys_network_init"] + pub fn network_init() -> i32; + + /// Add current task to the queue of blocked tasks. After calling `block_current_task`, + /// call `yield_now` to switch to another task. + #[link_name = "sys_block_current_task"] + pub fn block_current_task(); + + /// Add current task to the queue of blocked tasks, but wake it when `timeout` milliseconds + /// have elapsed. + /// + /// After calling `block_current_task`, call `yield_now` to switch to another task. + #[link_name = "sys_block_current_task_with_timeout"] + pub fn block_current_task_with_timeout(timeout: u64); + + /// Wakeup task with the thread id `tid` + #[link_name = "sys_wakeup_taskt"] + pub fn wakeup_task(tid: Tid); + + #[link_name = "sys_accept"] + pub fn accept(s: i32, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32; + + /// bind a name to a socket + #[link_name = "sys_bind"] + pub fn bind(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32; + + #[link_name = "sys_connect"] + pub fn connect(s: i32, name: *const sockaddr, namelen: socklen_t) -> i32; + + /// read from a file descriptor + /// + /// read() attempts to read `len` bytes of data from the object + /// referenced by the descriptor `fd` into the buffer pointed + /// to by `buf`. + #[link_name = "sys_read"] + pub fn read(fd: i32, buf: *mut u8, len: usize) -> isize; + + /// Fill `len` bytes in `buf` with cryptographically secure random data. + /// + /// Returns either the number of bytes written to buf (a positive value) or + /// * `-EINVAL` if `flags` contains unknown flags. + /// * `-ENOSYS` if the system does not support random data generation. + #[link_name = "sys_read_entropy"] + pub fn read_entropy(buf: *mut u8, len: usize, flags: u32) -> isize; + + /// receive() a message from a socket + #[link_name = "sys_recv"] + pub fn recv(socket: i32, buf: *mut u8, len: usize, flags: i32) -> isize; + + /// receive() a message from a socket + #[link_name = "sys_recvfrom"] + pub fn recvfrom( + socket: i32, + buf: *mut u8, + len: usize, + flags: i32, + addr: *mut sockaddr, + addrlen: *mut socklen_t, + ) -> isize; + + /// write to a file descriptor + /// + /// write() attempts to write `len` of data to the object + /// referenced by the descriptor `fd` from the + /// buffer pointed to by `buf`. + #[link_name = "sys_write"] + pub fn write(fd: i32, buf: *const u8, len: usize) -> isize; + + /// close a file descriptor + /// + /// The close() call deletes a file descriptor `fd` from the object + /// reference table. + #[link_name = "sys_close"] + pub fn close(fd: i32) -> i32; + + /// duplicate an existing file descriptor + #[link_name = "sys_dup"] + pub fn dup(fd: i32) -> i32; + + #[link_name = "sys_getpeername"] + pub fn getpeername(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockname"] + pub fn getsockname(s: i32, name: *mut sockaddr, namelen: *mut socklen_t) -> i32; + + #[link_name = "sys_getsockopt"] + pub fn getsockopt( + s: i32, + level: i32, + optname: i32, + optval: *mut c_void, + optlen: *mut socklen_t, + ) -> i32; + + #[link_name = "sys_setsockopt"] + pub fn setsockopt( + s: i32, + level: i32, + optname: i32, + optval: *const c_void, + optlen: socklen_t, + ) -> i32; + + #[link_name = "sys_ioctl"] + pub fn ioctl(s: i32, cmd: i32, argp: *mut c_void) -> i32; + + #[link_name = "sys_pool"] + pub fn poll(fds: *mut pollfd, nfds: nfds_t, timeout: i32) -> i32; + + /// listen for connections on a socket + /// + /// The `backlog` parameter defines the maximum length for the queue of pending + /// connections. Currently, the `backlog` must be one. + #[link_name = "sys_listen"] + pub fn listen(s: i32, backlog: i32) -> i32; + + #[link_name = "sys_send"] + pub fn send(s: i32, mem: *const c_void, len: usize, flags: i32) -> isize; + + #[link_name = "sys_sendto"] + pub fn sendto( + s: i32, + mem: *const c_void, + len: usize, + flags: i32, + to: *const sockaddr, + tolen: socklen_t, + ) -> isize; + + /// shut down part of a full-duplex connection + #[link_name = "sys_shutdown_socket"] + pub fn shutdown_socket(s: i32, how: i32) -> i32; + + #[link_name = "sys_socket"] + pub fn socket(domain: i32, type_: i32, protocol: i32) -> i32; + + #[link_name = "sys_freeaddrinfo"] + pub fn freeaddrinfo(ai: *mut addrinfo); + + #[link_name = "sys_getaddrinfo"] + pub fn getaddrinfo( + nodename: *const i8, + servname: *const u8, + hints: *const addrinfo, + res: *mut *mut addrinfo, + ) -> i32; + + fn sys_get_priority() -> u8; + fn sys_set_priority(tid: Tid, prio: u8); +} + +/// Determine the priority of the current thread +#[inline(always)] +pub unsafe fn get_priority() -> Priority { + Priority::from(sys_get_priority()) +} + +/// Determine the priority of the current thread +#[inline(always)] +pub unsafe fn set_priority(tid: Tid, prio: Priority) { + sys_set_priority(tid, prio.into()); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcplistener.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcplistener.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcplistener.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcplistener.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,13 @@ +//! `tcplistener` provide an interface to establish tcp socket server. + +use crate::{Handle, IpAddress}; + +extern "Rust" { + fn sys_tcp_listener_accept(port: u16) -> Result<(Handle, IpAddress, u16), ()>; +} + +/// Wait for connection at specified address. +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn accept(port: u16) -> Result<(Handle, IpAddress, u16), ()> { + unsafe { sys_tcp_listener_accept(port) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcpstream.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcpstream.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcpstream.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/hermit-abi/src/tcpstream.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,110 @@ +//! `tcpstream` provide an interface to establish tcp socket client. + +use crate::{Handle, IpAddress}; + +extern "Rust" { + fn sys_tcp_stream_connect(ip: &[u8], port: u16, timeout: Option) -> Result; + fn sys_tcp_stream_close(handle: Handle) -> Result<(), ()>; + fn sys_tcp_stream_read(handle: Handle, buffer: &mut [u8]) -> Result; + fn sys_tcp_stream_write(handle: Handle, buffer: &[u8]) -> Result; + fn sys_tcp_stream_set_read_timeout(handle: Handle, timeout: Option) -> Result<(), ()>; + fn sys_tcp_stream_get_read_timeout(handle: Handle) -> Result, ()>; + fn sys_tcp_stream_set_write_timeout(handle: Handle, timeout: Option) -> Result<(), ()>; + fn sys_tcp_stream_get_write_timeout(handle: Handle) -> Result, ()>; + fn sys_tcp_stream_peek(handle: Handle, buf: &mut [u8]) -> Result; + fn sys_tcp_stream_set_nonblocking(handle: Handle, mode: bool) -> Result<(), ()>; + fn sys_tcp_stream_set_tll(handle: Handle, ttl: u32) -> Result<(), ()>; + fn sys_tcp_stream_get_tll(handle: Handle) -> Result; + fn sys_tcp_stream_shutdown(handle: Handle, how: i32) -> Result<(), ()>; + fn sys_tcp_stream_peer_addr(handle: Handle) -> Result<(IpAddress, u16), ()>; +} + +/// Opens a TCP connection to a remote host. +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn connect(ip: &[u8], port: u16, timeout: Option) -> Result { + unsafe { sys_tcp_stream_connect(ip, port, timeout) } +} + +/// Close a TCP connection +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn close(handle: Handle) -> Result<(), ()> { + unsafe { sys_tcp_stream_close(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn peek(handle: Handle, buf: &mut [u8]) -> Result { + unsafe { sys_tcp_stream_peek(handle, buf) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn peer_addr(handle: Handle) -> Result<(IpAddress, u16), ()> { + unsafe { sys_tcp_stream_peer_addr(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn read(handle: Handle, buffer: &mut [u8]) -> Result { + unsafe { sys_tcp_stream_read(handle, buffer) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn write(handle: Handle, buffer: &[u8]) -> Result { + unsafe { sys_tcp_stream_write(handle, buffer) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_read_timeout(handle: Handle, timeout: Option) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_read_timeout(handle, timeout) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_write_timeout(handle: Handle, timeout: Option) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_write_timeout(handle, timeout) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_read_timeout(handle: Handle) -> Result, ()> { + unsafe { sys_tcp_stream_get_read_timeout(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_write_timeout(handle: Handle) -> Result, ()> { + unsafe { sys_tcp_stream_get_write_timeout(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_nodelay(_: Handle, mode: bool) -> Result<(), ()> { + // smoltcp does not support Nagle's algorithm + // => to enable Nagle's algorithm isn't possible + if mode { + Ok(()) + } else { + Err(()) + } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn nodelay(_: Handle) -> Result { + // smoltcp does not support Nagle's algorithm + // => return always true + Ok(true) +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_nonblocking(handle: Handle, mode: bool) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_nonblocking(handle, mode) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn set_tll(handle: Handle, ttl: u32) -> Result<(), ()> { + unsafe { sys_tcp_stream_set_tll(handle, ttl) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn get_tll(handle: Handle) -> Result { + unsafe { sys_tcp_stream_get_tll(handle) } +} + +#[deprecated(since = "0.3.0", note = "please use new BSD socket interface")] +pub fn shutdown(handle: Handle, how: i32) -> Result<(), ()> { + unsafe { sys_tcp_stream_shutdown(handle, how) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"5430cacd7a1f9a02fbeb350dfc81a0e5ed42d81f3398cb0ba184017f85bdcfbc"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.lock cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.lock --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.lock 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.lock 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1145 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cc" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "core-foundation" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "cpufeatures" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "diff" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499" + +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "encoding_rs" +version = "0.8.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a74ea89a0a1b98f6332de42c95baff457ada66d1cb4030f9ff151b2041a1c746" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" + +[[package]] +name = "futures-io" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11" + +[[package]] +name = "futures-sink" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" + +[[package]] +name = "futures-task" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" + +[[package]] +name = "futures-util" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" +dependencies = [ + "futures-core", + "futures-io", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", +] + +[[package]] +name = "h2" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "http" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" +dependencies = [ + "bytes", + "fnv", + "itoa 0.4.8", +] + +[[package]] +name = "http-auth" +version = "0.1.8" +dependencies = [ + "base64", + "digest", + "hex", + "http", + "log", + "md-5", + "memchr", + "pretty_assertions", + "rand", + "reqwest", + "sha2", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.5", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "ipnet" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] +name = "js-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "md-5" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582" +dependencies = [ + "digest", +] + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "mio" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" + +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" + +[[package]] +name = "openssl-sys" +version = "0.9.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df13d165e607909b363a4757a6f133f8a818a74e9d3a98d09c6128e15fa4c73" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "output_vt100" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" +dependencies = [ + "winapi", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pin-project-lite" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" + +[[package]] +name = "ppv-lite86" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" + +[[package]] +name = "pretty_assertions" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0cfe1b2403f172ba0f234e500906ee0a3e493fb81092dac23ebefe129301cc" +dependencies = [ + "ansi_term", + "ctor", + "diff", + "output_vt100", +] + +[[package]] +name = "proc-macro2" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "reqwest" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21eed90ec8570952d53b772ecf8f206aa1ec9a3d76b2521c56c42973f2d91ee9" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "ryu" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c9613b5a66ab9ba26415184cfc41156594925a9cf3a2057e57f31ff145f6568" + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi", +] + +[[package]] +name = "security-framework" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.130" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" + +[[package]] +name = "serde_json" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" +dependencies = [ + "itoa 0.4.8", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.5", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "slab" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" + +[[package]] +name = "socket2" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "syn" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "tempfile" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +dependencies = [ + "cfg-if", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tinyvec" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" +dependencies = [ + "autocfg", + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "windows-sys", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "typenum" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" + +[[package]] +name = "unicode-bidi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" + +[[package]] +name = "web-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +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-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.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,100 @@ +# 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.57.0" +name = "http-auth" +version = "0.1.8" +description = "HTTP authentication: parse challenge lists, respond to Basic and Digest challenges. Likely to be extended with server support and additional auth schemes." +readme = "README.md" +keywords = [ + "http", + "authentication", + "digest", + "basic", +] +categories = [ + "authentication", + "parser-implementations", + "web-programming::http-client", +] +license = "MIT/Apache-2.0" +repository = "https://github.com/scottlamb/http-auth" +resolver = "2" + +[package.metadata.docs.rs] +rustdoc-args = [ + "--cfg", + "docsrs", +] +all-features = true + +[[example]] +name = "reqwest" +required-features = ["http"] + +[dependencies.base64] +version = "0.21.0" +optional = true + +[dependencies.digest] +version = "0.10" +optional = true + +[dependencies.hex] +version = "0.4" +optional = true + +[dependencies.http] +version = "0.2.5" +optional = true + +[dependencies.log] +version = "0.4" +optional = true + +[dependencies.md-5] +version = "0.10" +optional = true + +[dependencies.memchr] +version = "2.4.1" + +[dependencies.rand] +version = "0.8.4" +optional = true + +[dependencies.sha2] +version = "0.10" +optional = true + +[dev-dependencies.pretty_assertions] +version = "1.0.0" + +[dev-dependencies.reqwest] +version = "0.11.6" +features = ["blocking"] + +[features] +basic-scheme = ["base64"] +default = [ + "basic-scheme", + "digest-scheme", +] +digest-scheme = [ + "digest", + "hex", + "md-5", + "rand", + "sha2", +] +trace = ["log"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/CHANGELOG.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/CHANGELOG.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,40 @@ +## `v0.1.8` (2023-01-30) + +* upgrade `base64` dependency from 0.20 to 0.21. + +## `v0.1.7` (2023-01-05) + +* bump minimum Rust version to 1.57. +* upgrade `base64` dependency from 0.13 to 0.20. + +## `v0.1.6` (2022-05-02) + +* upgrade `digest`, `md5`, and `sha2` dependencies. + +## `v0.1.5` (2021-11-30) + +* add `http_auth::basic::encode_credentials` for preemptively sending `Basic` + credentials. + +## `v0.1.4` (2021-11-18) + +* more thorough documentation +* shrink `DigestClient` +* support `userhash` in `DigestClient` +* support `-sess` algorithm variants in `DigestClient` + +## `v0.1.3` (2021-10-20) + +* fix `docs.rs` + +## `v0.1.2` (2021-10-20) + +* add RFC 2069 compatibility mode. + +## `v0.1.1` (2021-10-20) + +* allow `Digest`'s `qop` parameter to be omitted. + +## `v0.1.0` (2021-10-20) + +* initial version diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/design/20211020-new-crate.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/design/20211020-new-crate.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/design/20211020-new-crate.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/design/20211020-new-crate.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,57 @@ +# Write a new HTTP authentication crate + +Date: 2022-10-20 + +# Problem statement + +I'd like a crate for HTTP authentication that has the following goals +(described more in [`http-auth`'s README](../README.md)): + +1. sound +2. correct +3. light-weight +4. complete +5. ergonomic +6. fast enough + +## Considered options + +* Write a new crate +* Use/extend an existing crate + +The existing crates don't seem to match these goals partially well: + +### [`www-authenticate`](https://crates.io/crates/www-authenticate) + +* sound: `www-authenticate` has some unsound `transmute`s to static lifetime. + (These likely aren't hard to fix though.) +* light-weight: `www-authenticate` depends on `hyperx` and `unicase`, large + dependencies which many useful programs don't include. +* complete: `www-authenticate` only supports parsing of challenge lists, not + responding to them. + +### [`digest_auth`](https://crates.io/crates/digest_auth) + +* complete: `digest_auth` only supports `Digest`. It can't parse multiple + challenges and will fail if given a list that starts with another scheme. + Thus, if the server follows the advice of + [RFC 7235 section 2.1](https://datatracker.ietf.org/doc/html/rfc7235) and + lists another scheme such as `Basic` first, `digest_auth`'s parsing is + insufficient. + +### `www-authenticate` + `digest_auth` together + +In addition to the "sound" and "light-weight" `www-authenticate` caveats above, +responding to password challenges by using both `www-authenticate` and +`digest_auth` is still incomplete and not ergonomic. The caller must do extra work: + +* explicitly consider both `Digest` and `Basic`, rather than using the + abstract `http_auth::PasswordClient` that chooses the challenge for you. +* when responding to a `Digest` challenge, construct a matching + `digest_auth::WwwAuthenticateHeader` from the + `www_authenticate::DigestChallenge`. +* when responding to a `Basic` challenge, do the encoding manually. + +## Decision Outcome + +Write the new `http-auth` crate. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/design/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/design/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/design/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/design/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +This directory records design decisions, in the [ADR style](https://adr.github.io/). diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/examples/reqwest.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/examples/reqwest.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/examples/reqwest.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/examples/reqwest.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,67 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! Verbose example of making authenticated requests with the `reqwest` crate. + +use std::convert::TryFrom; + +use reqwest::header::HeaderValue; + +fn main() { + let args: Vec = std::env::args().collect(); + let (url, username, password) = match &args[..] { + [_program, url, username, password] => (url, username, password), + [program, ..] => { + eprintln!("expected {} URL USERNAME PASSWORD", program); + std::process::exit(1); + } + [] => panic!("no commandline arguments, not even argv[0]"), + }; + let url = reqwest::Url::try_from(url.as_str()).unwrap(); + + // Create a client which doesn't follow redirects. The URI used below won't + // be correct with reqwest's automatic redirect handling. + let client = reqwest::blocking::Client::builder() + .redirect(reqwest::redirect::Policy::none()) + .build() + .unwrap(); + let first_resp = client.get(url.clone()).send().unwrap(); + if first_resp.status() != reqwest::StatusCode::UNAUTHORIZED { + eprintln!( + "Server returned status {} without authentication!", + first_resp.status() + ); + std::process::exit(1); + } + + let mut pw_client = http_auth::PasswordClient::try_from( + first_resp + .headers() + .get_all(reqwest::header::WWW_AUTHENTICATE), + ) + .unwrap(); + println!("Password challenge client: {:#?}", &pw_client); + let authorization = pw_client + .respond(&http_auth::PasswordParams { + username, + password, + + // Note that URI is typically a path. + uri: url.path(), + method: reqwest::Method::GET.as_str(), + body: Some(&[]), + }) + .unwrap(); + println!("Authorization: {}", &authorization); + let mut authorization = HeaderValue::try_from(authorization).unwrap(); + authorization.set_sensitive(true); + let second_resp = client + .get(url) + .header(reqwest::header::AUTHORIZATION, authorization) + .send() + .unwrap(); + println!( + "After authorization, server returned status {}", + second_resp.status() + ); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-APACHE.txt cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-APACHE.txt --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-APACHE.txt 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-APACHE.txt 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,202 @@ + + 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 2021 Scott Lamb + + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-MIT.txt cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-MIT.txt --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-MIT.txt 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/LICENSE-MIT.txt 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +The MIT License (MIT) +Copyright (c) 2021 Scott Lamb + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,62 @@ +[![crates.io](https://img.shields.io/crates/v/http-auth)](https://crates.io/crates/http-auth) +[![Released API docs](https://docs.rs/http-auth/badge.svg)](https://docs.rs/http-auth/) +[![CI](https://github.com/scottlamb/http-auth/workflows/CI/badge.svg)](https://github.com/scottlamb/http-auth/actions?query=workflow%3ACI) + +Rust library for HTTP authentication. Parses challenge lists, responds +to `Basic` and `Digest` challenges. Likely to be extended with server +support and additional auth schemes. + +HTTP authentication is described in the following documents and specifications: + +* [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication). +* [RFC 7235](https://datatracker.ietf.org/doc/html/rfc7235): + Hypertext Transfer Protocol (HTTP/1.1): Authentication. +* [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617): + The 'Basic' HTTP Authentication Scheme +* [RFC 7616](https://datatracker.ietf.org/doc/html/rfc7616): + HTTP Digest Access Authentication + +This framework is primarily used with HTTP, as suggested by the name. It is +also used by some other protocols such as RTSP. + +## Status + +Well-tested, suitable for production. The API may change to improve ergonomics +and functionality. New functionality is likely to be added. PRs welcome! + +## Goals + +In order: + +1. **sound.** Currently no `unsafe` blocks in `http-auth` itself. All + dependencies are common, trusted crates. +2. **correct.** Precisely implements the specifications except where noted. + Fuzz tests verify the hand-written parser never panics and matches a + nom-based reference implementation. +3. **light-weight.** Minimal dependencies; uses Cargo features so callers can + avoid them when undesired. Simple code that minimizes monomorphization + bloat. Small data structures; eg `http_auth::DigestClient` currently weighs + in at 32 bytes plus one allocation for all string fields. +4. **complete.** Implements both parsing and responding to challenges. + (Currently only supports the client side and responding to the most common + `Basic` and `Digest` schemes; future expansion is likely.) +5. **ergonomic.** Creating a client for responding to a password challenge is + a one-liner from a string header or a + [`http::header::GetAll`](https://docs.rs/http/0.2.5/http/header/struct.GetAll.html). +6. **fast enough.** HTTP authentication is a small part of a real program, and + `http-auth`'s CPU usage should never be noticeable. For `Digest`'s + cryptographic operations, it uses popular optimized crates. In other + respects, `http-auth` is likely at least as efficient as other HTTP + authentication crates, although I have no reason to believe their + performance is problematic. + +## Author + +Scott Lamb <slamb@slamb.org> + +## License + +SPDX-License-Identifier: [MIT](https://spdx.org/licenses/MIT.html) OR [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) + +See [LICENSE-MIT.txt](LICENSE-MIT.txt) or [LICENSE-APACHE](LICENSE-APACHE.txt), +respectively. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/basic.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/basic.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/basic.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/basic.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,115 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! `Basic` authentication scheme as in +//! [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617). + +use std::convert::TryFrom; + +use crate::ChallengeRef; + +/// Encodes the given credentials. +/// +/// This can be used to preemptively send `Basic` authentication, without +/// sending an unauthenticated request and waiting for a `401 Unauthorized` +/// response. +/// +/// The caller should use the returned string as an `Authorization` or +/// `Proxy-Authorization` header value. +/// +/// The caller is responsible for `username` and `password` being in the +/// correct format. Servers may expect arguments to be in Unicode +/// Normalization Form C as noted in [RFC 7617 section +/// 2.1](https://datatracker.ietf.org/doc/html/rfc7617#section-2.1). +/// +/// ```rust +/// assert_eq!( +/// http_auth::basic::encode_credentials("Aladdin", "open sesame"), +/// "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", +/// ); +pub fn encode_credentials(username: &str, password: &str) -> String { + use base64::Engine as _; + let user_pass = format!("{}:{}", username, password); + const PREFIX: &str = "Basic "; + let mut value = String::with_capacity(PREFIX.len() + base64_encoded_len(user_pass.len())); + value.push_str(PREFIX); + base64::engine::general_purpose::STANDARD.encode_string(&user_pass[..], &mut value); + value +} + +/// Returns the base64-encoded length for the given input length, including padding. +fn base64_encoded_len(input_len: usize) -> usize { + (input_len + 2) / 3 * 4 +} + +/// Client for a `Basic` challenge, as in +/// [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617). +/// +/// This implementation always uses `UTF-8`. Thus it doesn't use or store the +/// `charset` parameter, which the RFC only allows to be set to `UTF-8` anyway. +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct BasicClient { + realm: Box, +} + +impl BasicClient { + pub fn realm(&self) -> &str { + &self.realm + } + + /// Responds to the challenge with the supplied parameters. + /// + /// This is functionally identical to [`encode_credentials`]; no parameters + /// of the `BasicClient` are needed to produce the credentials. + #[inline] + pub fn respond(&self, username: &str, password: &str) -> String { + encode_credentials(username, password) + } +} + +impl TryFrom<&ChallengeRef<'_>> for BasicClient { + type Error = String; + + fn try_from(value: &ChallengeRef<'_>) -> Result { + if !value.scheme.eq_ignore_ascii_case("Basic") { + return Err(format!( + "BasicClient doesn't support challenge scheme {:?}", + value.scheme + )); + } + let mut realm = None; + for (k, v) in &value.params { + if k.eq_ignore_ascii_case("realm") { + realm = Some(v.to_unescaped()); + } + } + let realm = realm.ok_or("missing required parameter realm")?; + Ok(BasicClient { + realm: realm.into_boxed_str(), + }) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn basic() { + // Example from https://datatracker.ietf.org/doc/html/rfc7617#section-2 + let ctx = BasicClient { + realm: "WallyWorld".into(), + }; + assert_eq!( + ctx.respond("Aladdin", "open sesame"), + "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" + ); + + // Example from https://datatracker.ietf.org/doc/html/rfc7617#section-2.1 + // Note that this crate *always* uses UTF-8, not just when the server requests it. + let ctx = BasicClient { + realm: "foo".into(), + }; + assert_eq!(ctx.respond("test", "123\u{A3}"), "Basic dGVzdDoxMjPCow=="); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/digest.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/digest.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/digest.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/digest.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,909 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! `Digest` authentication scheme, as in +//! [RFC 7616](https://datatracker.ietf.org/doc/html/rfc7616). + +use std::{convert::TryFrom, fmt::Write as _, io::Write as _}; + +use digest::Digest; + +use crate::{ + char_classes, ChallengeRef, ParamValue, PasswordParams, C_ATTR, C_ESCAPABLE, C_QDTEXT, +}; + +/// "Quality of protection" value. +/// +/// The values here can be used in a bitmask as in [`DigestClient::qop`]. +#[derive(Copy, Clone, Debug)] +#[repr(u8)] +#[non_exhaustive] +pub enum Qop { + /// Authentication. + Auth = 1, + + /// Authentication with integrity protection. + /// + /// "Integrity protection" means protection of the request entity body. + AuthInt = 2, +} + +impl Qop { + /// Returns a string form as expected over the wire. + fn as_str(self) -> &'static str { + match self { + Qop::Auth => "auth", + Qop::AuthInt => "auth-int", + } + } +} + +/// A set of zero or more [`Qop`]s. +#[derive(Copy, Clone, PartialEq, Eq)] +pub struct QopSet(u8); + +impl std::fmt::Debug for QopSet { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let mut l = f.debug_set(); + if (self.0 & Qop::Auth as u8) != 0 { + l.entry(&"auth"); + } + if (self.0 & Qop::AuthInt as u8) != 0 { + l.entry(&"auth-int"); + } + l.finish() + } +} + +impl std::ops::BitAnd for QopSet { + type Output = bool; + + fn bitand(self, rhs: Qop) -> Self::Output { + (self.0 & (rhs as u8)) != 0 + } +} + +/// Client for a `Digest` challenge, as in [RFC 7616](https://datatracker.ietf.org/doc/html/rfc7616). +/// +/// Most of the information here is taken from the `WWW-Authenticate` or +/// `Proxy-Authenticate` header. This also internally maintains a nonce counter. +/// +/// ## Implementation notes +/// +/// * Recalculates `H(A1)` on each [`DigestClient::respond`] call. It'd be +/// more CPU-efficient to calculate `H(A1)` only once by supplying the +/// username and password at construction time or by caching (username, +/// password) -> `H(A1)` mappings internally. `DigestClient` prioritizes +/// simplicity instead. +/// * There's no support yet for parsing the `Authentication-Info` and +/// `Proxy-Authentication-Info` header fields described by [RFC 7616 section +/// 3.5](https://datatracker.ietf.org/doc/html/rfc7616#section-3.5). +/// PRs welcome! +/// * Always responds using `UTF-8`, and thus doesn't use or keep around the `charset` +/// parameter. The RFC only allows that parameter to be set to `UTF-8` anyway. +/// * Supports [RFC 2069](https://datatracker.ietf.org/doc/html/rfc2069) compatibility as in +/// [RFC 2617 section 3.2.2.1](https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2.1), +/// even though RFC 7616 drops it. There are still RTSP cameras being sold +/// in 2021 that use the RFC 2069-style calculations. +/// * Supports RFC 7616 `userhash`, even though it seems impractical and only +/// marginally useful. The server must index the userhash for each supported +/// algorithm or calculate it on-the-fly for all users in the database. +/// * The `-sess` algorithm variants haven't been tested; there's no example +/// in the RFCs. +/// +/// ## Security considerations +/// +/// We strongly advise *servers* against implementing `Digest`: +/// +/// * It's actively harmful in that it prevents the server from securing their +/// password storage via salted password hashes. See [RFC 7616 Section +/// 5.2](https://datatracker.ietf.org/doc/html/rfc7616#section-5.2). +/// When your server offers `Digest` authentication, it is advertising that +/// it stores plaintext passwords! +/// * It's no replacement for TLS in terms of protecting confidentiality of +/// the password, much less confidentiality of any other information. +/// +/// For *clients*, when a server supports both `Digest` and `Basic`, we advise +/// using `Digest`. It provides (slightly) more confidentiality of passwords +/// over the wire. +/// +/// Some servers *only* support `Digest`. E.g., +/// [ONVIF](https://www.onvif.org/profiles/specifications/) mandates the +/// `Digest` scheme. It doesn't prohibit implementing other schemes, but some +/// cameras meet the specification's requirement and do no more. +#[derive(Eq, PartialEq)] +pub struct DigestClient { + /// Holds unescaped versions of all string fields. + /// + /// Using a single `String` minimizes the size of the `DigestClient` + /// itself and/or any option/enum it may be wrapped in. It also minimizes + /// padding bytes after each allocation. The fields as stored as follows: + /// + /// 1. `realm`: `[0, domain_start)` + /// 2. `domain`: `[domain_start, opaque_start)` + /// 3. `opaque`: `[opaque_start, nonce_start)` + /// 4. `nonce`: `[nonce_start, buf.len())` + buf: Box, + + // Positions described in `buf` comment above. See respective methods' doc + // comments for more information. These are stored as `u16` to save space, + // and because it's unreasonable for them to be large. + domain_start: u16, + opaque_start: u16, + nonce_start: u16, + + // Non-string fields. See respective methods' doc comments for more information. + algorithm: Algorithm, + session: bool, + stale: bool, + rfc2069_compat: bool, + userhash: bool, + qop: QopSet, + nc: u32, +} + +impl DigestClient { + /// Returns a string to be displayed to users so they know which username + /// and password to use. + /// + /// This string should contain at least the name of + /// the host performing the authentication and might additionally + /// indicate the collection of users who might have access. An + /// example is `registered_users@example.com`. (See [Section 2.2 of + /// RFC 7235](https://datatracker.ietf.org/doc/html/rfc7235#section-2.2) for + /// more details.) + #[inline] + pub fn realm(&self) -> &str { + &self.buf[..self.domain_start as usize] + } + + /// Returns the domain, a space-separated list of URIs, as specified in RFC + /// 3986, that define the protection space. + /// + /// If the domain parameter is absent, returns an empty string, which is semantically + /// identical according to the RFC. + #[inline] + pub fn domain(&self) -> &str { + &self.buf[self.domain_start as usize..self.opaque_start as usize] + } + + /// Returns the nonce, a server-specified string which should be uniquely + /// generated each time a 401 response is made. + #[inline] + pub fn nonce(&self) -> &str { + &self.buf[self.nonce_start as usize..] + } + + /// Returns string of data, specified by the server, that SHOULD be returned + /// by the client unchanged in the Authorization header field of subsequent + /// requests with URIs in the same protection space. + /// + /// Currently an empty `opaque` is treated as an absent one. + #[inline] + pub fn opaque(&self) -> Option<&str> { + if self.opaque_start == self.nonce_start { + None + } else { + Some(&self.buf[self.opaque_start as usize..self.nonce_start as usize]) + } + } + + /// Returns a flag indicating that the previous request from the client was + /// rejected because the nonce value was stale. + #[inline] + pub fn stale(&self) -> bool { + self.stale + } + + /// Returns true if using [RFC 2069](https://datatracker.ietf.org/doc/html/rfc2069) + /// compatibility mode as in [RFC 2617 section + /// 3.2.2.1](https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2.1). + /// + /// If so, `request-digest` is calculated without the nonce count, conce, or qop. + #[inline] + pub fn rfc2069_compat(&self) -> bool { + self.rfc2069_compat + } + + /// Returns the algorithm used to produce the digest and an unkeyed digest. + #[inline] + pub fn algorithm(&self) -> Algorithm { + self.algorithm + } + + /// Returns if the session style `A1` will be used. + #[inline] + pub fn session(&self) -> bool { + self.session + } + + /// Returns the acceptable `qop` (quality of protection) values. + #[inline] + pub fn qop(&self) -> QopSet { + self.qop + } + + /// Returns the number of times the server-supplied nonce has been used by + /// [`DigestClient::respond`]. + #[inline] + pub fn nonce_count(&self) -> u32 { + self.nc + } + + /// Responds to the challenge with the supplied parameters. + /// + /// The caller should use the returned string as an `Authorization` or + /// `Proxy-Authorization` header value. + #[inline] + pub fn respond(&mut self, p: &PasswordParams) -> Result { + self.respond_inner(p, &new_random_cnonce()) + } + + /// Responds using a fixed cnonce **for testing only**. + /// + /// In production code, use [`DigestClient::respond`] instead, which generates a new + /// random cnonce value. + #[inline] + pub fn respond_with_testing_cnonce( + &mut self, + p: &PasswordParams, + cnonce: &str, + ) -> Result { + self.respond_inner(p, cnonce) + } + + /// Helper for respond methods. + /// + /// We don't simply implement this as `respond_with_testing_cnonce` and have + /// `respond` delegate to that method because it'd be confusing/alarming if + /// that method name ever shows up in production stack traces. + /// and have `respond` delegate to the testing version. We don't do that because + fn respond_inner(&mut self, p: &PasswordParams, cnonce: &str) -> Result { + let realm = self.realm(); + let mut h_a1 = self.algorithm.h(&[ + p.username.as_bytes(), + b":", + realm.as_bytes(), + b":", + p.password.as_bytes(), + ]); + if self.session { + h_a1 = self.algorithm.h(&[ + h_a1.as_bytes(), + b":", + self.nonce().as_bytes(), + b":", + cnonce.as_bytes(), + ]); + } + + // Select the best available qop and calculate H(A2) as in + // [https://datatracker.ietf.org/doc/html/rfc7616#section-3.4.3]. + let (h_a2, qop); + if let (Some(body), true) = (p.body, self.qop & Qop::AuthInt) { + h_a2 = self + .algorithm + .h(&[p.method.as_bytes(), b":", p.uri.as_bytes(), b":", body]); + qop = Qop::AuthInt; + } else if self.qop & Qop::Auth { + h_a2 = self + .algorithm + .h(&[p.method.as_bytes(), b":", p.uri.as_bytes()]); + qop = Qop::Auth; + } else { + return Err("no supported/available qop".into()); + } + + let nc = self.nc.checked_add(1).ok_or("nonce count exhausted")?; + let mut hex_nc = [0u8; 8]; + let _ = write!(&mut hex_nc[..], "{:08x}", nc); + let str_hex_nc = match std::str::from_utf8(&hex_nc[..]) { + Ok(h) => h, + Err(_) => unreachable!(), + }; + + // https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2.1 + let response = if self.rfc2069_compat { + self.algorithm.h(&[ + h_a1.as_bytes(), + b":", + self.nonce().as_bytes(), + b":", + h_a2.as_bytes(), + ]) + } else { + self.algorithm.h(&[ + h_a1.as_bytes(), + b":", + self.nonce().as_bytes(), + b":", + &hex_nc[..], + b":", + cnonce.as_bytes(), + b":", + qop.as_str().as_bytes(), + b":", + h_a2.as_bytes(), + ]) + }; + + let mut out = String::with_capacity(128); + out.push_str("Digest "); + if self.userhash { + let hashed = self + .algorithm + .h(&[p.username.as_bytes(), b":", realm.as_bytes()]); + append_quoted_key_value(&mut out, "username", &hashed)?; + append_unquoted_key_value(&mut out, "userhash", "true"); + } else if is_valid_quoted_value(p.username) { + append_quoted_key_value(&mut out, "username", p.username)?; + } else { + append_extended_key_value(&mut out, "username", p.username); + } + append_quoted_key_value(&mut out, "realm", self.realm())?; + append_quoted_key_value(&mut out, "uri", p.uri)?; + append_quoted_key_value(&mut out, "nonce", self.nonce())?; + if !self.rfc2069_compat { + append_unquoted_key_value(&mut out, "algorithm", self.algorithm.as_str(self.session)); + append_unquoted_key_value(&mut out, "nc", str_hex_nc); + append_quoted_key_value(&mut out, "cnonce", cnonce)?; + append_unquoted_key_value(&mut out, "qop", qop.as_str()); + } + append_quoted_key_value(&mut out, "response", &response)?; + if let Some(o) = self.opaque() { + append_quoted_key_value(&mut out, "opaque", o)?; + } + out.truncate(out.len() - 2); // remove final ", " + self.nc = nc; + Ok(out) + } +} + +impl TryFrom<&ChallengeRef<'_>> for DigestClient { + type Error = String; + + fn try_from(value: &ChallengeRef<'_>) -> Result { + if !value.scheme.eq_ignore_ascii_case("Digest") { + return Err(format!( + "DigestClientContext doesn't support challenge scheme {:?}", + value.scheme + )); + } + let mut buf_len = 0; + let mut unused_len = 0; + let mut realm = None; + let mut domain = None; + let mut nonce = None; + let mut opaque = None; + let mut stale = false; + let mut algorithm_and_session = None; + let mut qop_str = None; + let mut userhash_str = None; + + // Parse response header field parameters as in + // [https://datatracker.ietf.org/doc/html/rfc7616#section-3.3]. + for (k, v) in &value.params { + // Note that "stale" and "algorithm" can be directly compared + // without unescaping because RFC 7616 section 3.3 says "For + // historical reasons, a sender MUST NOT generate the quoted string + // syntax values for the following parameters: stale and algorithm." + if store_param(k, v, "realm", &mut realm, &mut buf_len)? + || store_param(k, v, "domain", &mut domain, &mut buf_len)? + || store_param(k, v, "nonce", &mut nonce, &mut buf_len)? + || store_param(k, v, "opaque", &mut opaque, &mut buf_len)? + || store_param(k, v, "qop", &mut qop_str, &mut unused_len)? + || store_param(k, v, "userhash", &mut userhash_str, &mut unused_len)? + { + // Do nothing here. + } else if k.eq_ignore_ascii_case("stale") { + stale = v.escaped.eq_ignore_ascii_case("true"); + } else if k.eq_ignore_ascii_case("algorithm") { + algorithm_and_session = Some(Algorithm::parse(v.escaped)?); + } + } + let realm = realm.ok_or("missing required parameter realm")?; + let nonce = nonce.ok_or("missing required parameter nonce")?; + if buf_len > u16::MAX as usize { + // Incredibly unlikely, but just for completeness. + return Err(format!( + "Unescaped parameters' length {} exceeds u16::MAX!", + buf_len + )); + } + + let algorithm_and_session = algorithm_and_session.unwrap_or((Algorithm::Md5, false)); + + let mut buf = String::with_capacity(buf_len); + let mut qop = QopSet(0); + let rfc2069_compat = if let Some(qop_str) = qop_str { + let qop_str = qop_str.unescaped_with_scratch(&mut buf); + for v in qop_str.split(',') { + let v = v.trim(); + if v.eq_ignore_ascii_case("auth") { + qop.0 |= Qop::Auth as u8; + } else if v.eq_ignore_ascii_case("auth-int") { + qop.0 |= Qop::AuthInt as u8; + } + } + if qop.0 == 0 { + return Err(format!("no supported qop in {:?}", qop_str)); + } + buf.clear(); + false + } else { + // An absent qop is treated as "auth", according to + // https://datatracker.ietf.org/doc/html/rfc7616#section-3.4.3 + qop.0 |= Qop::Auth as u8; + true + }; + let userhash; + if let Some(userhash_str) = userhash_str { + let userhash_str = userhash_str.unescaped_with_scratch(&mut buf); + userhash = userhash_str.eq_ignore_ascii_case("true"); + buf.clear(); + } else { + userhash = false; + }; + realm.append_unescaped(&mut buf); + let domain_start = buf.len(); + if let Some(d) = domain { + d.append_unescaped(&mut buf); + } + let opaque_start = buf.len(); + if let Some(o) = opaque { + o.append_unescaped(&mut buf); + } + let nonce_start = buf.len(); + nonce.append_unescaped(&mut buf); + Ok(DigestClient { + buf: buf.into_boxed_str(), + domain_start: domain_start as u16, + opaque_start: opaque_start as u16, + nonce_start: nonce_start as u16, + algorithm: algorithm_and_session.0, + session: algorithm_and_session.1, + stale, + rfc2069_compat, + userhash, + qop, + nc: 0, + }) + } +} + +impl std::fmt::Debug for DigestClient { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("DigestClient") + .field("realm", &self.realm()) + .field("domain", &self.domain()) + .field("opaque", &self.opaque()) + .field("nonce", &self.nonce()) + .field("algorithm", &self.algorithm.as_str(self.session)) + .field("stale", &self.stale) + .field("qop", &self.qop) + .field("rfc2069_compat", &self.rfc2069_compat) + .field("userhash", &self.userhash) + .field("nc", &self.nc) + .finish() + } +} + +/// Helper for `DigestClient::try_from` which stashes away a `&ParamValue`. +fn store_param<'v, 'tmp>( + k: &'tmp str, + v: &'v ParamValue<'v>, + expected_k: &'tmp str, + set_v: &'tmp mut Option<&'v ParamValue<'v>>, + add_len: &'tmp mut usize, +) -> Result { + if !k.eq_ignore_ascii_case(expected_k) { + return Ok(false); + } + if set_v.is_some() { + return Err(format!("duplicate parameter {:?}", k)); + } + *add_len += v.unescaped_len(); + *set_v = Some(v); + Ok(true) +} + +fn is_valid_quoted_value(s: &str) -> bool { + for &b in s.as_bytes() { + if char_classes(b) & (C_QDTEXT | C_ESCAPABLE) == 0 { + return false; + } + } + true +} + +fn append_extended_key_value(out: &mut String, key: &str, value: &str) { + out.push_str(key); + out.push_str("*=UTF-8''"); + for &b in value.as_bytes() { + if (char_classes(b) & C_ATTR) != 0 { + out.push(char::from(b)); + } else { + let _ = write!(out, "%{:02X}", b); + } + } + out.push_str(", "); +} + +fn append_unquoted_key_value(out: &mut String, key: &str, value: &str) { + out.push_str(key); + out.push('='); + out.push_str(value); + out.push_str(", "); +} + +fn append_quoted_key_value(out: &mut String, key: &str, value: &str) -> Result<(), String> { + out.push_str(key); + out.push_str("=\""); + let mut first_unwritten = 0; + let bytes = value.as_bytes(); + for (i, &b) in bytes.iter().enumerate() { + // Note that bytes >= 128 are in neither C_QDTEXT nor C_ESCAPABLE, so every allowed byte + // is a full character. + let class = char_classes(b); + if (class & C_QDTEXT) != 0 { + // Just advance. + } else if (class & C_ESCAPABLE) != 0 { + out.push_str(&value[first_unwritten..i]); + out.push('\\'); + out.push(char::from(b)); + first_unwritten = i + 1; + } else { + return Err(format!("invalid {} value {:?}", key, value)); + } + } + out.push_str(&value[first_unwritten..]); + out.push_str("\", "); + Ok(()) +} + +/// Supported algorithm from the [HTTP Digest Algorithm Values +/// registry](https://www.iana.org/assignments/http-dig-alg/http-dig-alg.xhtml). +/// +/// This doesn't store whether the session variant (`-sess`) was +/// requested; see [`DigestClient::session`] for that. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[non_exhaustive] +pub enum Algorithm { + Md5, + Sha256, + Sha512Trunc256, +} + +impl Algorithm { + /// Parses a string into a tuple of `Algorithm` and a bool representing + /// whether the `-sess` suffix is present. + fn parse(s: &str) -> Result<(Self, bool), String> { + Ok(match s { + "MD5" => (Algorithm::Md5, false), + "MD5-sess" => (Algorithm::Md5, true), + "SHA-256" => (Algorithm::Sha256, false), + "SHA-256-sess" => (Algorithm::Sha256, true), + "SHA-512-256" => (Algorithm::Sha512Trunc256, false), + "SHA-512-256-sess" => (Algorithm::Sha512Trunc256, true), + _ => return Err(format!("unknown algorithm {:?}", s)), + }) + } + + fn as_str(&self, session: bool) -> &'static str { + match (self, session) { + (Algorithm::Md5, false) => "MD5", + (Algorithm::Md5, true) => "MD5-sess", + (Algorithm::Sha256, false) => "SHA-256", + (Algorithm::Sha256, true) => "SHA-256-sess", + (Algorithm::Sha512Trunc256, false) => "SHA-512-256", + (Algorithm::Sha512Trunc256, true) => "SHA-512-256-sess", + } + } + + fn h(&self, items: &[&[u8]]) -> String { + match self { + Algorithm::Md5 => h(md5::Md5::new(), items), + Algorithm::Sha256 => h(sha2::Sha256::new(), items), + Algorithm::Sha512Trunc256 => h(sha2::Sha512_256::new(), items), + } + } +} + +fn h(mut d: D, items: &[&[u8]]) -> String { + for i in items { + d.update(i); + } + hex::encode(d.finalize()) +} + +fn new_random_cnonce() -> String { + let raw: [u8; 16] = rand::random(); + hex::encode(&raw[..]) +} + +#[cfg(test)] +mod tests { + use super::*; + use pretty_assertions::assert_eq; + + /// Tests the example from [RFC 7616 section 3.9.1: SHA-256 and + /// MD5](https://datatracker.ietf.org/doc/html/rfc7616#section-3.9.1). + #[test] + fn sha256_and_md5() { + let www_authenticate = "\ + Digest \ + realm=\"http-auth@example.org\", \ + qop=\"auth, auth-int\", \ + algorithm=SHA-256, \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\", \ + Digest \ + realm=\"http-auth@example.org\", \ + qop=\"auth, auth-int\", \ + algorithm=MD5, \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\""; + let challenges = dbg!(crate::parse_challenges(www_authenticate).unwrap()); + assert_eq!(challenges.len(), 2); + let ctxs: Result, _> = challenges.iter().map(DigestClient::try_from).collect(); + let mut ctxs = dbg!(ctxs.unwrap()); + assert_eq!(ctxs[1].realm(), "http-auth@example.org"); + assert_eq!(ctxs[1].domain(), ""); + assert_eq!( + ctxs[1].nonce(), + "7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v" + ); + assert_eq!( + ctxs[1].opaque(), + Some("FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS") + ); + assert_eq!(ctxs[1].stale(), false); + assert_eq!(ctxs[1].algorithm(), Algorithm::Md5); + assert_eq!(ctxs[1].qop().0, (Qop::Auth as u8) | (Qop::AuthInt as u8)); + assert_eq!(ctxs[1].nonce_count(), 0); + let params = crate::PasswordParams { + username: "Mufasa", + password: "Circle of Life", + uri: "/dir/index.html", + body: None, + method: "GET", + }; + assert_eq!( + &mut ctxs[0] + .respond_with_testing_cnonce( + ¶ms, + "f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ" + ) + .unwrap(), + "Digest username=\"Mufasa\", \ + realm=\"http-auth@example.org\", \ + uri=\"/dir/index.html\", \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + algorithm=SHA-256, \ + nc=00000001, \ + cnonce=\"f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ\", \ + qop=auth, \ + response=\"753927fa0e85d155564e2e272a28d1802ca10daf4496794697cf8db5856cb6c1\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\"" + ); + assert_eq!(ctxs[0].nc, 1); + assert_eq!( + &mut ctxs[1] + .respond_with_testing_cnonce( + ¶ms, + "f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ" + ) + .unwrap(), + "Digest username=\"Mufasa\", \ + realm=\"http-auth@example.org\", \ + uri=\"/dir/index.html\", \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + algorithm=MD5, \ + nc=00000001, \ + cnonce=\"f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ\", \ + qop=auth, \ + response=\"8ca523f5e9506fed4657c9700eebdbec\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\"" + ); + assert_eq!(ctxs[1].nc, 1); + } + + /// Tests a made-up example with `MD5-sess`. There's no example in the RFC, + /// and these values haven't been tested against any other implementation. + /// But having the test here ensures we don't accidentally change the + /// algorithm. + #[test] + fn md5_sess() { + let www_authenticate = "\ + Digest \ + realm=\"http-auth@example.org\", \ + qop=\"auth, auth-int\", \ + algorithm=MD5-sess, \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\""; + let challenges = dbg!(crate::parse_challenges(www_authenticate).unwrap()); + assert_eq!(challenges.len(), 1); + let ctxs: Result, _> = challenges.iter().map(DigestClient::try_from).collect(); + let mut ctxs = dbg!(ctxs.unwrap()); + assert_eq!(ctxs[0].realm(), "http-auth@example.org"); + assert_eq!(ctxs[0].domain(), ""); + assert_eq!( + ctxs[0].nonce(), + "7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v" + ); + assert_eq!( + ctxs[0].opaque(), + Some("FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS") + ); + assert_eq!(ctxs[0].stale(), false); + assert_eq!(ctxs[0].algorithm(), Algorithm::Md5); + assert_eq!(ctxs[0].session(), true); + assert_eq!(ctxs[0].qop().0, (Qop::Auth as u8) | (Qop::AuthInt as u8)); + assert_eq!(ctxs[0].nonce_count(), 0); + let params = crate::PasswordParams { + username: "Mufasa", + password: "Circle of Life", + uri: "/dir/index.html", + body: None, + method: "GET", + }; + assert_eq!( + &mut ctxs[0] + .respond_with_testing_cnonce( + ¶ms, + "f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ" + ) + .unwrap(), + "Digest username=\"Mufasa\", \ + realm=\"http-auth@example.org\", \ + uri=\"/dir/index.html\", \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + algorithm=MD5-sess, \ + nc=00000001, \ + cnonce=\"f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ\", \ + qop=auth, \ + response=\"e783283f46242139c486a698fec7211d\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\"" + ); + assert_eq!(ctxs[0].nc, 1); + } + + /// Tests the example from [RFC 7616 section 3.9.2: SHA-512-256, Charset, and + /// Userhash](https://datatracker.ietf.org/doc/html/rfc7616#section-3.9.2). + #[test] + fn sha512_256_charset() { + let www_authenticate = "\ + Digest \ + realm=\"api@example.org\", \ + qop=\"auth\", \ + algorithm=SHA-512-256, \ + nonce=\"5TsQWLVdgBdmrQ0XsxbDODV+57QdFR34I9HAbC/RVvkK\", \ + opaque=\"HRPCssKJSGjCrkzDg8OhwpzCiGPChXYjwrI2QmXDnsOS\", \ + charset=UTF-8, \ + userhash=true"; + let challenges = dbg!(crate::parse_challenges(www_authenticate).unwrap()); + assert_eq!(challenges.len(), 1); + let ctxs: Result, _> = challenges.iter().map(DigestClient::try_from).collect(); + let mut ctxs = dbg!(ctxs.unwrap()); + assert_eq!(ctxs.len(), 1); + assert_eq!(ctxs[0].realm(), "api@example.org"); + assert_eq!(ctxs[0].domain(), ""); + assert_eq!( + ctxs[0].nonce(), + "5TsQWLVdgBdmrQ0XsxbDODV+57QdFR34I9HAbC/RVvkK" + ); + assert_eq!( + ctxs[0].opaque(), + Some("HRPCssKJSGjCrkzDg8OhwpzCiGPChXYjwrI2QmXDnsOS") + ); + assert_eq!(ctxs[0].stale, false); + assert_eq!(ctxs[0].userhash, true); + assert_eq!(ctxs[0].algorithm, Algorithm::Sha512Trunc256); + assert_eq!(ctxs[0].qop.0, Qop::Auth as u8); + assert_eq!(ctxs[0].nc, 0); + let params = crate::PasswordParams { + username: "J\u{E4}s\u{F8}n Doe", + password: "Secret, or not?", + uri: "/doe.json", + body: None, + method: "GET", + }; + + // Note the username and response values in the RFC are *wrong*! + // https://www.rfc-editor.org/errata/eid4897 + assert_eq!( + &mut ctxs[0] + .respond_with_testing_cnonce( + ¶ms, + "NTg6RKcb9boFIAS3KrFK9BGeh+iDa/sm6jUMp2wds69v" + ) + .unwrap(), + "\ + Digest \ + username=\"793263caabb707a56211940d90411ea4a575adeccb7e360aeb624ed06ece9b0b\", \ + userhash=true, \ + realm=\"api@example.org\", \ + uri=\"/doe.json\", \ + nonce=\"5TsQWLVdgBdmrQ0XsxbDODV+57QdFR34I9HAbC/RVvkK\", \ + algorithm=SHA-512-256, \ + nc=00000001, \ + cnonce=\"NTg6RKcb9boFIAS3KrFK9BGeh+iDa/sm6jUMp2wds69v\", \ + qop=auth, \ + response=\"3798d4131c277846293534c3edc11bd8a5e4cdcbff78b05db9d95eeb1cec68a5\", \ + opaque=\"HRPCssKJSGjCrkzDg8OhwpzCiGPChXYjwrI2QmXDnsOS\"" + ); + assert_eq!(ctxs[0].nc, 1); + ctxs[0].userhash = false; + ctxs[0].nc = 0; + assert_eq!( + &mut ctxs[0] + .respond_with_testing_cnonce( + ¶ms, + "NTg6RKcb9boFIAS3KrFK9BGeh+iDa/sm6jUMp2wds69v" + ) + .unwrap(), + "\ + Digest \ + username*=UTF-8''J%C3%A4s%C3%B8n%20Doe, \ + realm=\"api@example.org\", \ + uri=\"/doe.json\", \ + nonce=\"5TsQWLVdgBdmrQ0XsxbDODV+57QdFR34I9HAbC/RVvkK\", \ + algorithm=SHA-512-256, \ + nc=00000001, \ + cnonce=\"NTg6RKcb9boFIAS3KrFK9BGeh+iDa/sm6jUMp2wds69v\", \ + qop=auth, \ + response=\"3798d4131c277846293534c3edc11bd8a5e4cdcbff78b05db9d95eeb1cec68a5\", \ + opaque=\"HRPCssKJSGjCrkzDg8OhwpzCiGPChXYjwrI2QmXDnsOS\"" + ); + assert_eq!(ctxs[0].nc, 1); + } + + #[test] + fn rfc2069() { + // https://datatracker.ietf.org/doc/html/rfc2069#section-2.4 + // The response there is wrong! See https://www.rfc-editor.org/errata/eid749 + let www_authenticate = "\ + Digest \ + realm=\"testrealm@host.com\", \ + nonce=\"dcd98b7102dd2f0e8b11d0f600bfb0c093\", \ + opaque=\"5ccc069c403ebaf9f0171e9517f40e41\""; + let challenges = dbg!(crate::parse_challenges(www_authenticate).unwrap()); + assert_eq!(challenges.len(), 1); + let ctxs: Result, _> = challenges.iter().map(DigestClient::try_from).collect(); + let mut ctxs = dbg!(ctxs.unwrap()); + assert_eq!(ctxs.len(), 1); + assert_eq!(ctxs[0].qop.0, Qop::Auth as u8); + assert_eq!(ctxs[0].rfc2069_compat, true); + let params = crate::PasswordParams { + username: "Mufasa", + password: "CircleOfLife", + uri: "/dir/index.html", + body: None, + method: "GET", + }; + assert_eq!( + &mut ctxs[0] + .respond_with_testing_cnonce(¶ms, "unused") + .unwrap(), + "\ + Digest \ + username=\"Mufasa\", \ + realm=\"testrealm@host.com\", \ + uri=\"/dir/index.html\", \ + nonce=\"dcd98b7102dd2f0e8b11d0f600bfb0c093\", \ + response=\"1949323746fe6a43ef61f9606e7febea\", \ + opaque=\"5ccc069c403ebaf9f0171e9517f40e41\"", + ); + assert_eq!(ctxs[0].nc, 1); + } + + // See sizes with: cargo test -- --nocapture digest::tests::size + #[test] + fn size() { + // This type should have a niche. + assert_eq!( + dbg!(std::mem::size_of::()), + dbg!(std::mem::size_of::>()), + ) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,736 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! HTTP authentication. Currently meant for clients; to be extended for servers. +//! +//! As described in the following documents and specifications: +//! +//! * [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication). +//! * [RFC 7235](https://datatracker.ietf.org/doc/html/rfc7235): +//! Hypertext Transfer Protocol (HTTP/1.1): Authentication. +//! * [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617): +//! The 'Basic' HTTP Authentication Scheme +//! * [RFC 7616](https://datatracker.ietf.org/doc/html/rfc7616): +//! HTTP Digest Access Authentication +//! +//! This framework is primarily used with HTTP, as suggested by the name. It is +//! also used by some other protocols such as RTSP. +//! +//! ## Cargo Features +//! +//! | feature | default? | description | +//! |-----------------|----------|-------------------------------------------------| +//! | `basic-scheme` | yes | support for the `Basic` auth scheme | +//! | `digest-scheme` | yes | support for the `Digest` auth scheme | +//! | `http` | no | convenient conversion from [`http`] crate types | +//! +//! ## Example +//! +//! In most cases, callers only need to use [`PasswordClient`] and +//! [`PasswordParams`] to handle `Basic` and `Digest` authentication schemes. +//! +#![cfg_attr( + feature = "http", + doc = r##" +```rust +use std::convert::TryFrom as _; +use http_auth::PasswordClient; + +let WWW_AUTHENTICATE_VAL = "UnsupportedSchemeA, Basic realm=\"foo\", UnsupportedSchemeB"; +let mut pw_client = http_auth::PasswordClient::try_from(WWW_AUTHENTICATE_VAL).unwrap(); +assert!(matches!(pw_client, http_auth::PasswordClient::Basic(_))); +let response = pw_client.respond(&http_auth::PasswordParams { + username: "Aladdin", + password: "open sesame", + uri: "/", + method: "GET", + body: Some(&[]), +}).unwrap(); +assert_eq!(response, "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="); +``` +"## +)] +//! +//! The `http` feature allows parsing all `WWW-Authenticate` headers within a +//! [`http::HeaderMap`] in one call. +//! +#![cfg_attr( + feature = "http", + doc = r##" +```rust +# use std::convert::TryFrom as _; +use http::header::{HeaderMap, WWW_AUTHENTICATE}; +# use http_auth::PasswordClient; + +let mut headers = HeaderMap::new(); +headers.append(WWW_AUTHENTICATE, "UnsupportedSchemeA".parse().unwrap()); +headers.append(WWW_AUTHENTICATE, "Basic realm=\"foo\", UnsupportedSchemeB".parse().unwrap()); + +let mut pw_client = PasswordClient::try_from(headers.get_all(WWW_AUTHENTICATE)).unwrap(); +assert!(matches!(pw_client, http_auth::PasswordClient::Basic(_))); +``` +"## +)] +#![cfg_attr(docsrs, feature(doc_cfg))] + +use std::convert::TryFrom; + +pub mod parser; + +#[cfg(feature = "basic-scheme")] +#[cfg_attr(docsrs, doc(cfg(feature = "basic-scheme")))] +pub mod basic; + +#[cfg(feature = "digest-scheme")] +#[cfg_attr(docsrs, doc(cfg(feature = "digest-scheme")))] +pub mod digest; + +mod table; + +pub use parser::ChallengeParser; + +#[cfg(feature = "basic-scheme")] +#[cfg_attr(docsrs, doc(cfg(feature = "basic-scheme")))] +pub use crate::basic::BasicClient; + +#[cfg(feature = "digest-scheme")] +#[cfg_attr(docsrs, doc(cfg(feature = "digest-scheme")))] +pub use crate::digest::DigestClient; + +use crate::table::{char_classes, C_ESCAPABLE, C_OWS, C_QDTEXT, C_TCHAR}; + +#[cfg(feature = "digest-scheme")] +use crate::table::C_ATTR; + +/// Parsed challenge (scheme and body) using references to the original header value. +/// Produced by [`crate::parser::ChallengeParser`]. +/// +/// This is not directly useful for responding to a challenge; it's an +/// intermediary for constructing a client that knows how to respond to a specific +/// challenge scheme. In most cases, callers should construct a [`PasswordClient`] +/// without directly using `ChallengeRef`. +/// +/// Only supports the param form, not the apocryphal `token68` form, as described +/// in [`crate::parser::ChallengeParser`]. +#[derive(Clone, Eq, PartialEq)] +pub struct ChallengeRef<'i> { + /// The scheme name, which should be compared case-insensitively. + pub scheme: &'i str, + + /// Zero or more parameters. + /// + /// These are represented as a `Vec` of key-value pairs rather than a + /// map. Given that the parameters are generally only used once when + /// constructing a challenge client and each challenge only supports a few + /// parameter types, it's more efficient in terms of CPU usage and code size + /// to scan through them directly. + pub params: Vec>, +} + +impl<'i> ChallengeRef<'i> { + pub fn new(scheme: &'i str) -> Self { + ChallengeRef { + scheme, + params: Vec::new(), + } + } +} + +impl<'i> std::fmt::Debug for ChallengeRef<'i> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ChallengeRef") + .field("scheme", &self.scheme) + .field("params", &ParamsPrinter(&self.params)) + .finish() + } +} + +type ChallengeParamRef<'i> = (&'i str, ParamValue<'i>); + +struct ParamsPrinter<'i>(&'i [ChallengeParamRef<'i>]); + +impl<'i> std::fmt::Debug for ParamsPrinter<'i> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_map().entries(self.0.iter().copied()).finish() + } +} + +/// Builds a [`PasswordClient`] from the supplied challenges; create via +/// [`PasswordClient::builder`]. +/// +/// Often you can just use [`PasswordClient`]'s [`TryFrom`] implementations +/// to convert from a parsed challenge ([`crate::ChallengeRef`]) or +/// unparsed challenges (`str`, [`http::header::HeaderValue`], or +/// [`http::header::GetAll`]). +/// +/// The builder allows more flexibility. For example, if you are using a HTTP +/// library which is not based on a `http` crate, you might need to create +/// a `PasswordClient` from an iterator over multiple `WWW-Authenticate` +/// headers. You can feed each to [`PasswordClientBuilder::challenges`]. +/// +/// Prefers `Digest` over `Basic`, consistent with the [RFC 7235 section +/// 2.1](https://datatracker.ietf.org/doc/html/rfc7235#section-2.1) advice +/// for a user-agent to pick the most secure auth-scheme it understands. +/// +/// When there are multiple `Digest` challenges, currently uses the first, +/// consistent with the [RFC 7616 section +/// 3.7](https://datatracker.ietf.org/doc/html/rfc7616#section-3.7) +/// advice to "use the first challenge it supports, unless a local policy +/// dictates otherwise". In the future, it may prioritize by algorithm. +/// +/// Ignores parse errors as long as there's at least one parseable, supported +/// challenge. +/// +/// ## Example +/// +#[cfg_attr( + feature = "digest", + doc = r##" +```rust +use http_auth::PasswordClient; +let client = PasswordClient::builder() + .challenges("UnsupportedSchemeA, Basic realm=\"foo\", UnsupportedSchemeB") + .challenges("Digest \ + realm=\"http-auth@example.org\", \ + qop=\"auth, auth-int\", \ + algorithm=MD5, \ + nonce=\"7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v\", \ + opaque=\"FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS\"") + .build() + .unwrap(); +assert!(matches!(client, PasswordClient::Digest(_))); +``` +"## +)] +#[derive(Default)] +pub struct PasswordClientBuilder( + /// The current result: + /// * `Some(Ok(_))` if there is a suitable client. + /// * `Some(Err(_))` if there is no suitable client and has been a parse error. + /// * `None` otherwise. + Option>, +); + +impl PasswordClientBuilder { + /// Considers all challenges from the given [`http::HeaderValue`] challenge list. + #[cfg(feature = "http")] + #[cfg_attr(docsrs, doc(cfg(feature = "http")))] + pub fn header_value(mut self, value: &http::HeaderValue) -> Self { + if self.complete() { + return self; + } + + match value.to_str() { + Ok(v) => self = self.challenges(v), + Err(_) if matches!(self.0, None) => self.0 = Some(Err("non-ASCII header value".into())), + _ => {} + } + + self + } + + /// Returns true if no more challenges need to be examined. + #[cfg(feature = "digest-scheme")] + fn complete(&self) -> bool { + matches!(self.0, Some(Ok(PasswordClient::Digest(_)))) + } + + /// Returns true if no more challenges need to be examined. + #[cfg(not(feature = "digest-scheme"))] + fn complete(&self) -> bool { + matches!(self.0, Some(Ok(_))) + } + + /// Considers all challenges from the given `&str` challenge list. + pub fn challenges(mut self, value: &str) -> Self { + let mut parser = ChallengeParser::new(value); + while !self.complete() { + match parser.next() { + Some(Ok(c)) => self = self.challenge(&c), + Some(Err(e)) if self.0.is_none() => self.0 = Some(Err(e.to_string())), + _ => break, + } + } + self + } + + /// Considers a single challenge. + pub fn challenge(mut self, challenge: &ChallengeRef<'_>) -> Self { + if self.complete() { + return self; + } + + #[cfg(feature = "digest-scheme")] + if challenge.scheme.eq_ignore_ascii_case("Digest") { + match DigestClient::try_from(challenge) { + Ok(c) => self.0 = Some(Ok(PasswordClient::Digest(c))), + Err(e) if self.0.is_none() => self.0 = Some(Err(e)), + _ => {} + } + return self; + } + + #[cfg(feature = "basic-scheme")] + if challenge.scheme.eq_ignore_ascii_case("Basic") && !matches!(self.0, Some(Ok(_))) { + match BasicClient::try_from(challenge) { + Ok(c) => self.0 = Some(Ok(PasswordClient::Basic(c))), + Err(e) if self.0.is_none() => self.0 = Some(Err(e)), + _ => {} + } + return self; + } + + if self.0.is_none() { + self.0 = Some(Err(format!("Unsupported scheme {:?}", challenge.scheme))); + } + + self + } + + /// Returns a new [`PasswordClient`] or fails. + pub fn build(self) -> Result { + self.0.unwrap_or_else(|| Err("no challenges given".into())) + } +} + +/// Client for responding to a password challenge. +/// +/// Typically created via [`TryFrom`] implementations for a parsed challenge +/// ([`crate::ChallengeRef`]) or unparsed challenges (`str`, +/// [`http::header::HeaderValue`], or [`http::header::GetAll`]). See full +/// example in the [crate-level documentation](crate). +/// +/// For more complex scenarios, see [`PasswordClientBuilder`]. +#[derive(Debug, Eq, PartialEq)] +#[non_exhaustive] +pub enum PasswordClient { + #[cfg(feature = "basic-scheme")] + #[cfg_attr(docsrs, doc(cfg(feature = "basic-scheme")))] + Basic(BasicClient), + + #[cfg(feature = "digest-scheme")] + #[cfg_attr(docsrs, doc(cfg(feature = "digest-scheme")))] + Digest(DigestClient), +} + +/// Tries to create a `PasswordClient` from the single supplied challenge. +/// +/// This is a convenience wrapper around [`PasswordClientBuilder`]. +impl TryFrom<&ChallengeRef<'_>> for PasswordClient { + type Error = String; + + fn try_from(value: &ChallengeRef<'_>) -> Result { + #[cfg(feature = "basic-scheme")] + if value.scheme.eq_ignore_ascii_case("Basic") { + return Ok(PasswordClient::Basic(BasicClient::try_from(value)?)); + } + #[cfg(feature = "digest-scheme")] + if value.scheme.eq_ignore_ascii_case("Digest") { + return Ok(PasswordClient::Digest(DigestClient::try_from(value)?)); + } + + Err(format!("unsupported challenge scheme {:?}", value.scheme)) + } +} + +/// Tries to create a `PasswordClient` forom the supplied `str` challenge list. +/// +/// This is a convenience wrapper around [`PasswordClientBuilder`]. +impl TryFrom<&str> for PasswordClient { + type Error = String; + + #[inline] + fn try_from(value: &str) -> Result { + PasswordClient::builder().challenges(value).build() + } +} + +/// Tries to create a `PasswordClient` from the supplied `HeaderValue` challenge list. +/// +/// This is a convenience wrapper around [`PasswordClientBuilder`]. +#[cfg(feature = "http")] +#[cfg_attr(docsrs, doc(cfg(feature = "http")))] +impl TryFrom<&http::HeaderValue> for PasswordClient { + type Error = String; + + #[inline] + fn try_from(value: &http::HeaderValue) -> Result { + PasswordClient::builder().header_value(value).build() + } +} + +/// Tries to create a `PasswordClient` from the supplied `http::header::GetAll` challenge lists. +/// +/// This is a convenience wrapper around [`PasswordClientBuilder`]. +#[cfg(feature = "http")] +#[cfg_attr(docsrs, doc(cfg(feature = "http")))] +impl TryFrom> for PasswordClient { + type Error = String; + + fn try_from(value: http::header::GetAll<'_, http::HeaderValue>) -> Result { + let mut builder = PasswordClient::builder(); + for v in value { + builder = builder.header_value(v); + } + builder.build() + } +} + +impl PasswordClient { + /// Builds a new `PasswordClient`. + /// + /// See example at [`PasswordClientBuilder`]. + pub fn builder() -> PasswordClientBuilder { + PasswordClientBuilder::default() + } + + /// Responds to the challenge with the supplied parameters. + /// + /// The caller should use the returned string as an `Authorization` or + /// `Proxy-Authorization` header value. + #[allow(unused_variables)] // p is unused with no features. + pub fn respond(&mut self, p: &PasswordParams) -> Result { + match self { + #[cfg(feature = "basic-scheme")] + Self::Basic(c) => Ok(c.respond(p.username, p.password)), + #[cfg(feature = "digest-scheme")] + Self::Digest(c) => c.respond(p), + + // Rust 1.55 + --no-default-features produces a "non-exhaustive + // patterns" error without this. I think this is a rustc bug given + // that the enum is empty in this case. Work around it. + #[cfg(not(any(feature = "basic-scheme", feature = "digest-scheme")))] + _ => unreachable!(), + } + } +} + +/// Parameters for responding to a password challenge. +/// +/// This is cheap to construct; callers generally use a fresh `PasswordParams` +/// for each request. +/// +/// The caller is responsible for supplying parameters in the correct +/// format. Servers may expect character data to be in Unicode Normalization +/// Form C as noted in [RFC 7617 section +/// 2.1](https://datatracker.ietf.org/doc/html/rfc7617#section-2.1) for the +/// `Basic` scheme and [RFC 7616 section +/// 4](https://datatracker.ietf.org/doc/html/rfc7616#section-4) for the `Digest` +/// scheme. +/// +/// Note that most of these fields are only needed for [`DigestClient`]. Callers +/// that only care about the `Basic` challenge scheme can use +/// [`BasicClient::respond`] directly with only username and password. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct PasswordParams<'a> { + pub username: &'a str, + pub password: &'a str, + + /// The URI from the Request-URI of the Request-Line, as described in + /// [RFC 2617 section 3.2.2](https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2). + /// + /// [RFC 2617 section + /// 3.2.2.5](https://datatracker.ietf.org/doc/html/rfc2617#section-3.2.2.5), + /// which says the following: + /// > This may be `*`, an `absoluteURL` or an `abs_path` as specified in + /// > section 5.1.2 of [RFC 2616](https://datatracker.ietf.org/doc/html/rfc2616), + /// > but it MUST agree with the Request-URI. In particular, it MUST + /// > be an `absoluteURL` if the Request-URI is an `absoluteURL`. + /// + /// [RFC 7616 section 3.4](https://datatracker.ietf.org/doc/html/rfc7616#section-3.4) + /// describes this as the "Effective Request URI", which is *always* an + /// absolute form. This may be a mistake. [Section + /// 3.4.6](https://datatracker.ietf.org/doc/html/rfc7616#section-3.4.6) + /// matches RFC 2617 section 3.2.2.5, and [Appendix + /// A](https://datatracker.ietf.org/doc/html/rfc7616#appendix-A) doesn't + /// mention a change from RFC 2617. + pub uri: &'a str, + + /// The HTTP method, such as `GET`. + /// + /// When using the `http` crate, use the return value of + /// [`http::Method::as_str`]. + pub method: &'a str, + + /// The entity body, if available. Use `Some(&[])` for HTTP methods with no + /// body. + /// + /// When `None`, `Digest` challenges will only be able to use + /// [`crate::digest::Qop::Auth`], not + /// [`crate::digest::Qop::AuthInt`]. + pub body: Option<&'a [u8]>, +} + +/// Parses a list of challenges into a `Vec`. +/// +/// Most callers don't need to directly parse; see [`PasswordClient`] instead. +/// +/// This is a shorthand for `parser::ChallengeParser::new(input).collect()`. Use +/// [`crate::parser::ChallengeParser`] directly when you want to parse lazily, +/// avoid allocation, and/or see any well-formed challenges before an error. +/// +/// ## Example +/// +/// ```rust +/// use http_auth::{parse_challenges, ChallengeRef, ParamValue}; +/// +/// // When all challenges are well-formed, returns them. +/// assert_eq!( +/// parse_challenges("UnsupportedSchemeA, Basic realm=\"foo\"").unwrap(), +/// vec![ +/// ChallengeRef { +/// scheme: "UnsupportedSchemeA", +/// params: vec![], +/// }, +/// ChallengeRef { +/// scheme: "Basic", +/// params: vec![("realm", ParamValue::try_from_escaped("foo").unwrap())], +/// }, +/// ], +/// ); +/// +/// // Returns `Err` if there is a syntax error anywhere in the input. +/// parse_challenges("UnsupportedSchemeA, Basic realm=\"foo\", error error").unwrap_err(); +/// ``` +#[inline] +pub fn parse_challenges(input: &str) -> Result, parser::Error> { + parser::ChallengeParser::new(input).collect() +} + +/// Parsed challenge parameter value used within [`ChallengeRef`]. +#[derive(Copy, Clone, Eq, PartialEq)] +pub struct ParamValue<'i> { + /// The number of backslash escapes in a quoted-text parameter; 0 for a plain token. + escapes: usize, + + /// The escaped string, which must be pure ASCII (no bytes >= 128) and be + /// consistent with `escapes`. + escaped: &'i str, +} + +impl<'i> ParamValue<'i> { + /// Tries to create a new `ParamValue` from an escaped sequence, primarily for testing. + /// + /// Validates the sequence and counts the number of escapes. + pub fn try_from_escaped(escaped: &'i str) -> Result { + let mut escapes = 0; + let mut pos = 0; + while pos < escaped.len() { + let slash = memchr::memchr(b'\\', &escaped.as_bytes()[pos..]).map(|off| pos + off); + for i in pos..slash.unwrap_or(escaped.len()) { + if (char_classes(escaped.as_bytes()[i]) & C_QDTEXT) == 0 { + return Err(format!("{:?} has non-qdtext at byte {}", escaped, i)); + } + } + if let Some(slash) = slash { + escapes += 1; + if escaped.len() <= slash + 1 { + return Err(format!("{:?} ends at a quoted-pair escape", escaped)); + } + if (char_classes(escaped.as_bytes()[slash + 1]) & C_ESCAPABLE) == 0 { + return Err(format!( + "{:?} has an invalid quote-pair escape at byte {}", + escaped, + slash + 1 + )); + } + pos = slash + 2; + } else { + break; + } + } + Ok(Self { escaped, escapes }) + } + + /// Creates a new param, panicking if invariants are not satisfied. + /// This not part of the stable API; it's just for the fuzz tester to use. + #[doc(hidden)] + pub fn new(escapes: usize, escaped: &'i str) -> Self { + let mut pos = 0; + for escape in 0..escapes { + match memchr::memchr(b'\\', &escaped.as_bytes()[pos..]) { + Some(rel_pos) => pos += rel_pos + 2, + None => panic!( + "expected {} backslashes in {:?}, ran out after {}", + escapes, escaped, escape + ), + }; + } + if memchr::memchr(b'\\', &escaped.as_bytes()[pos..]).is_some() { + panic!( + "expected {} backslashes in {:?}, are more", + escapes, escaped + ); + } + ParamValue { escapes, escaped } + } + + /// Appends the unescaped form of this parameter to the supplied string. + pub fn append_unescaped(&self, to: &mut String) { + to.reserve(self.escaped.len() - self.escapes); + let mut first_unwritten = 0; + for _ in 0..self.escapes { + let i = match memchr::memchr(b'\\', &self.escaped.as_bytes()[first_unwritten..]) { + Some(rel_i) => first_unwritten + rel_i, + None => panic!("bad ParamValues; not as many backslash escapes as promised"), + }; + to.push_str(&self.escaped[first_unwritten..i]); + to.push_str(&self.escaped[i + 1..i + 2]); + first_unwritten = i + 2; + } + to.push_str(&self.escaped[first_unwritten..]); + } + + /// Returns the unescaped length of this parameter; cheap. + #[inline] + pub fn unescaped_len(&self) -> usize { + self.escaped.len() - self.escapes + } + + /// Returns the unescaped form of this parameter as a fresh `String`. + pub fn to_unescaped(&self) -> String { + let mut to = String::new(); + self.append_unescaped(&mut to); + to + } + + /// Returns the unescaped form of this parameter, possibly appending it to `scratch`. + #[cfg(feature = "digest-scheme")] + fn unescaped_with_scratch<'tmp>(&self, scratch: &'tmp mut String) -> &'tmp str + where + 'i: 'tmp, + { + if self.escapes == 0 { + self.escaped + } else { + let start = scratch.len(); + self.append_unescaped(scratch); + &scratch[start..] + } + } + + /// Returns the escaped string, unquoted. + #[inline] + pub fn as_escaped(&self) -> &'i str { + self.escaped + } +} + +impl<'i> std::fmt::Debug for ParamValue<'i> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "\"{}\"", self.escaped) + } +} + +#[cfg(test)] +mod tests { + use crate::ParamValue; + use crate::{C_ATTR, C_ESCAPABLE, C_OWS, C_QDTEXT, C_TCHAR}; + + /// Prints the character classes of all ASCII bytes from the table. + /// + /// ```console + /// $ cargo test -- --nocapture tests::table + /// ``` + #[test] + fn table() { + // Print the table to allow human inspection. + println!("oct dec hex char tchar qdtext escapable ows attr"); + for b in 0..128 { + let classes = crate::char_classes(b); + let if_class = + |class: u8, label: &'static str| if (classes & class) != 0 { label } else { "" }; + println!( + "{:03o} {:>3} 0x{:02x} {:8} {:5} {:6} {:9} {:3} {:4}", + b, + b, + b, + format!("{:?}", char::from(b)), + if_class(C_TCHAR, "tchar"), + if_class(C_QDTEXT, "qdtext"), + if_class(C_ESCAPABLE, "escapable"), + if_class(C_OWS, "ows"), + if_class(C_ATTR, "attr") + ); + + // Do basic sanity checks: all tchar and ows should be qdtext; all + // qdtext should be escapable. + assert!(classes & (C_TCHAR | C_QDTEXT) != C_TCHAR); + assert!(classes & (C_OWS | C_QDTEXT) != C_OWS); + assert!(classes & (C_QDTEXT | C_ESCAPABLE) != C_QDTEXT); + } + } + + #[test] + fn try_from_escaped() { + assert_eq!(ParamValue::try_from_escaped("").unwrap().escapes, 0); + assert_eq!(ParamValue::try_from_escaped("foo").unwrap().escapes, 0); + assert_eq!(ParamValue::try_from_escaped("\\\"").unwrap().escapes, 1); + assert_eq!( + ParamValue::try_from_escaped("foo\\\"bar").unwrap().escapes, + 1 + ); + assert_eq!( + ParamValue::try_from_escaped("foo\\\"bar\\\"baz") + .unwrap() + .escapes, + 2 + ); + ParamValue::try_from_escaped("\\").unwrap_err(); // ends in slash + ParamValue::try_from_escaped("\"").unwrap_err(); // not valid qdtext + ParamValue::try_from_escaped("\n").unwrap_err(); // not valid qdtext + ParamValue::try_from_escaped("\\\n").unwrap_err(); // not valid escape + } + + #[test] + fn unescape() { + assert_eq!( + &ParamValue { + escapes: 0, + escaped: "" + } + .to_unescaped(), + "" + ); + assert_eq!( + &ParamValue { + escapes: 0, + escaped: "foo" + } + .to_unescaped(), + "foo" + ); + assert_eq!( + &ParamValue { + escapes: 1, + escaped: "\\foo" + } + .to_unescaped(), + "foo" + ); + assert_eq!( + &ParamValue { + escapes: 1, + escaped: "fo\\o" + } + .to_unescaped(), + "foo" + ); + assert_eq!( + &ParamValue { + escapes: 1, + escaped: "foo\\bar" + } + .to_unescaped(), + "foobar" + ); + assert_eq!( + &ParamValue { + escapes: 3, + escaped: "\\foo\\ba\\r" + } + .to_unescaped(), + "foobar" + ); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/parser.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/parser.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/parser.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/parser.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,593 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! Parses as in [RFC 7235](https://datatracker.ietf.org/doc/html/rfc7235). +//! +//! Most callers don't need to directly parse; see [`crate::PasswordClient`] instead. + +// State machine implementation of challenge parsing with a state machine. +// Nice qualities: predictable performance (no backtracking), low dependencies. +// +// The implementation is *not* a straightforward translation of the ABNF +// grammar, so we verify correctness via a fuzz tester that compares with a +// nom-based parser. See `fuzz/fuzz_targets/parse_challenges.rs`. + +use std::{fmt::Display, ops::Range}; + +use crate::{ChallengeRef, ParamValue}; + +use crate::{char_classes, C_ESCAPABLE, C_OWS, C_QDTEXT, C_TCHAR}; + +/// Calls `log::trace!` only if the `trace` cargo feature is enabled. +macro_rules! trace { + ($($arg:tt)+) => (#[cfg(feature = "trace")] log::trace!($($arg)+)) +} + +/// Parses a list of challenges as in [RFC +/// 7235](https://datatracker.ietf.org/doc/html/rfc7235) `Proxy-Authenticate` +/// or `WWW-Authenticate` header values. +/// +/// Most callers don't need to directly parse; see [`crate::PasswordClient`] instead. +/// +/// This is an iterator that parses lazily, returning each challenge as soon as +/// its end has been found. (Due to the grammar's ambiguous use of commas to +/// separate both challenges and parameters, a challenge's end is found after +/// parsing the *following* challenge's scheme name.) On encountering a syntax +/// error, it yields `Some(Err(_))` and fuses: all subsequent calls to +/// [`Iterator::next`] will return `None`. +/// +/// See also the [`crate::parse_challenges`] convenience wrapper. +/// +/// ## Example +/// +/// ```rust +/// use http_auth::{parser::ChallengeParser, ChallengeRef, ParamValue}; +/// let challenges = "UnsupportedSchemeA, Basic realm=\"foo\", error error"; +/// let mut parser = ChallengeParser::new(challenges); +/// let c = parser.next().unwrap().unwrap(); +/// assert_eq!(c, ChallengeRef { +/// scheme: "UnsupportedSchemeA", +/// params: vec![], +/// }); +/// let c = parser.next().unwrap().unwrap(); +/// assert_eq!(c, ChallengeRef { +/// scheme: "Basic", +/// params: vec![("realm", ParamValue::try_from_escaped("foo").unwrap())], +/// }); +/// let c = parser.next().unwrap().unwrap_err(); +/// ``` +/// +/// ## Implementation notes +/// +/// This rigorously matches the official ABNF grammar except as follows: +/// +/// * Doesn't allow non-ASCII characters. [RFC 7235 Appendix +/// B](https://datatracker.ietf.org/doc/html/rfc7235#appendix-B) references +/// the `quoted-string` rule from [RFC 7230 section +/// 3.2.6](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6), +/// which allows these via `obs-text`, but the meaning is ill-defined in +/// the context of RFC 7235. +/// * Doesn't allow `token68`, which as far as I know has never been and will +/// never be used in a `challenge`: +/// * [RFC 2617](https://datatracker.ietf.org/doc/html/rfc2617) never +/// allowed `token68` for challenges. +/// * [RFC 7235 Appendix +/// A](https://datatracker.ietf.org/doc/html/rfc7235#appendix-A) says +/// `token68` "was added for consistency with legacy authentication +/// schemes such as `Basic`", but `Basic` only uses `token68` in +/// `credential`, not `challenge`. +/// * [RFC 7235 section +/// 5.1.2](https://datatracker.ietf.org/doc/html/rfc7235#section-5.1.2) +/// says "new schemes ought to use the `auth-param` syntax instead +/// [of `token68`], because otherwise future extensions will be +/// impossible." +/// * No scheme in the [registry](https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml) +/// uses `token68` challenges as of 2021-10-19. +pub struct ChallengeParser<'i> { + input: &'i str, + pos: usize, + state: State<'i>, +} + +impl<'i> ChallengeParser<'i> { + pub fn new(input: &'i str) -> Self { + ChallengeParser { + input, + pos: 0, + state: State::PreToken { + challenge: None, + next: Possibilities(P_SCHEME), + }, + } + } +} + +/// Describes a parse error and where in the input it occurs. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +pub struct Error<'i> { + input: &'i str, + pos: usize, + error: &'static str, +} + +impl<'i> Error<'i> { + fn invalid_byte(input: &'i str, pos: usize) -> Self { + Self { + input, + pos, + error: "invalid byte", + } + } +} + +impl<'i> Display for Error<'i> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!( + f, + "{} at byte {}: {:?}", + self.error, + self.pos, + format_args!( + "{}(HERE-->){}", + &self.input[..self.pos], + &self.input[self.pos..] + ), + ) + } +} + +impl<'i> std::error::Error for Error<'i> {} + +/// A set of zero or more `P_*` values indicating possibilities for the current +/// and/or upcoming tokens. +#[derive(Copy, Clone, PartialEq, Eq)] +struct Possibilities(u8); + +const P_SCHEME: u8 = 1; +const P_PARAM_KEY: u8 = 2; +const P_EOF: u8 = 4; +const P_WHITESPACE: u8 = 8; +const P_COMMA_PARAM_KEY: u8 = 16; // a comma, then a param_key. +const P_COMMA_EOF: u8 = 32; // a comma, then eof. + +impl std::fmt::Debug for Possibilities { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let mut l = f.debug_set(); + if (self.0 & P_SCHEME) != 0 { + l.entry(&"scheme"); + } + if (self.0 & P_PARAM_KEY) != 0 { + l.entry(&"param_key"); + } + if (self.0 & P_EOF) != 0 { + l.entry(&"eof"); + } + if (self.0 & P_WHITESPACE) != 0 { + l.entry(&"whitespace"); + } + if (self.0 & P_COMMA_PARAM_KEY) != 0 { + l.entry(&"comma_param_key"); + } + if (self.0 & P_COMMA_EOF) != 0 { + l.entry(&"comma_eof"); + } + l.finish() + } +} + +enum State<'i> { + Done, + + /// Consuming OWS and commas, then advancing to `Token`. + PreToken { + challenge: Option>, + next: Possibilities, + }, + + /// Parsing a scheme/parameter key, or the whitespace immediately following it. + Token { + /// Current `challenge`, if any. If none, this token must be a scheme. + challenge: Option>, + token_pos: Range, + cur: Possibilities, // subset of P_SCHEME|P_PARAM_KEY + }, + + /// Transitioned from `Token` or `PostToken` on first `=` after parameter key. + /// Kept there for BWS in param case. + PostEquals { + challenge: ChallengeRef<'i>, + key_pos: Range, + }, + + /// Transitioned from `Equals` on initial `C_TCHAR`. + ParamUnquotedValue { + challenge: ChallengeRef<'i>, + key_pos: Range, + value_start: usize, + }, + + /// Transitioned from `Equals` on initial `"`. + ParamQuotedValue { + challenge: ChallengeRef<'i>, + key_pos: Range, + value_start: usize, + escapes: usize, + in_backslash: bool, + }, +} + +impl<'i> Iterator for ChallengeParser<'i> { + type Item = Result, Error<'i>>; + + fn next(&mut self) -> Option { + while self.pos < self.input.len() { + let b = self.input.as_bytes()[self.pos]; + let classes = char_classes(b); + match std::mem::replace(&mut self.state, State::Done) { + State::Done => return None, + State::PreToken { challenge, next } => { + trace!( + "PreToken({:?}) pos={} b={:?}", + next, + self.pos, + char::from(b) + ); + if (classes & C_OWS) != 0 && (next.0 & P_WHITESPACE) != 0 { + self.state = State::PreToken { + challenge, + next: Possibilities(next.0 & !P_EOF), + } + } else if b == b',' { + let next = Possibilities( + next.0 + | P_WHITESPACE + | P_SCHEME + | if (next.0 & P_COMMA_PARAM_KEY) != 0 { + P_PARAM_KEY + } else { + 0 + } + | if (next.0 & P_COMMA_EOF) != 0 { + P_EOF + } else { + 0 + }, + ); + self.state = State::PreToken { challenge, next } + } else if (classes & C_TCHAR) != 0 { + self.state = State::Token { + challenge, + token_pos: self.pos..self.pos + 1, + cur: Possibilities(next.0 & (P_SCHEME | P_PARAM_KEY)), + } + } else { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + } + State::Token { + challenge, + token_pos, + cur, + } => { + trace!( + "Token({:?}, {:?}) pos={} b={:?}, cur challenge = {:#?}", + token_pos, + cur, + self.pos, + char::from(b), + challenge + ); + if (classes & C_TCHAR) != 0 { + if token_pos.end == self.pos { + self.state = State::Token { + challenge, + token_pos: token_pos.start..self.pos + 1, + cur, + }; + } else { + // Ending a scheme, starting a parameter key without an intermediate comma. + // The whitespace between must be exactly one space. + if (cur.0 & P_SCHEME) == 0 + || &self.input[token_pos.end..self.pos] != " " + { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + self.state = State::Token { + challenge: Some(ChallengeRef::new(&self.input[token_pos])), + token_pos: self.pos..self.pos + 1, + cur: Possibilities(P_PARAM_KEY), + }; + if let Some(c) = challenge { + self.pos += 1; + return Some(Ok(c)); + } + } + } else { + match b { + b',' if (cur.0 & P_SCHEME) != 0 => { + self.state = State::PreToken { + challenge: Some(ChallengeRef::new(&self.input[token_pos])), + next: Possibilities( + P_SCHEME | P_WHITESPACE | P_EOF | P_COMMA_EOF, + ), + }; + if let Some(c) = challenge { + self.pos += 1; + return Some(Ok(c)); + } + } + b'=' if (cur.0 & P_PARAM_KEY) != 0 => match challenge { + Some(challenge) => { + self.state = State::PostEquals { + challenge, + key_pos: token_pos, + } + } + None => { + return Some(Err(Error { + input: self.input, + pos: self.pos, + error: "= without existing challenge", + })); + } + }, + + b' ' | b'\t' => { + self.state = State::Token { + challenge, + token_pos, + cur, + } + } + + _ => return Some(Err(Error::invalid_byte(self.input, self.pos))), + } + } + } + State::PostEquals { challenge, key_pos } => { + trace!("PostEquals pos={} b={:?}", self.pos, char::from(b)); + if (classes & C_OWS) != 0 { + // Note this doesn't advance key_pos.end, so in the token68 case, another + // `=` will not be allowed. + self.state = State::PostEquals { challenge, key_pos }; + } else if b == b'"' { + self.state = State::ParamQuotedValue { + challenge, + key_pos, + value_start: self.pos + 1, + escapes: 0, + in_backslash: false, + }; + } else if (classes & C_TCHAR) != 0 { + self.state = State::ParamUnquotedValue { + challenge, + key_pos, + value_start: self.pos, + }; + } else { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + } + State::ParamUnquotedValue { + mut challenge, + key_pos, + value_start, + } => { + trace!("ParamUnquotedValue pos={} b={:?}", self.pos, char::from(b)); + if (classes & C_TCHAR) != 0 { + self.state = State::ParamUnquotedValue { + challenge, + key_pos, + value_start, + }; + } else if (classes & C_OWS) != 0 { + challenge.params.push(( + &self.input[key_pos], + ParamValue { + escapes: 0, + escaped: &self.input[value_start..self.pos], + }, + )); + self.state = State::PreToken { + challenge: Some(challenge), + next: Possibilities(P_WHITESPACE | P_COMMA_PARAM_KEY | P_COMMA_EOF), + }; + } else if b == b',' { + challenge.params.push(( + &self.input[key_pos], + ParamValue { + escapes: 0, + escaped: &self.input[value_start..self.pos], + }, + )); + self.state = State::PreToken { + challenge: Some(challenge), + next: Possibilities( + P_WHITESPACE + | P_PARAM_KEY + | P_SCHEME + | P_EOF + | P_COMMA_PARAM_KEY + | P_COMMA_EOF, + ), + }; + } else { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + } + State::ParamQuotedValue { + mut challenge, + key_pos, + value_start, + escapes, + in_backslash, + } => { + trace!("ParamQuotedValue pos={} b={:?}", self.pos, char::from(b)); + if in_backslash { + if (classes & C_ESCAPABLE) == 0 { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + self.state = State::ParamQuotedValue { + challenge, + key_pos, + value_start, + escapes: escapes + 1, + in_backslash: false, + }; + } else if b == b'\\' { + self.state = State::ParamQuotedValue { + challenge, + key_pos, + value_start, + escapes, + in_backslash: true, + }; + } else if b == b'"' { + challenge.params.push(( + &self.input[key_pos], + ParamValue { + escapes, + escaped: &self.input[value_start..self.pos], + }, + )); + self.state = State::PreToken { + challenge: Some(challenge), + next: Possibilities( + P_WHITESPACE | P_EOF | P_COMMA_PARAM_KEY | P_COMMA_EOF, + ), + }; + } else if (classes & C_QDTEXT) != 0 { + self.state = State::ParamQuotedValue { + challenge, + key_pos, + value_start, + escapes, + in_backslash, + }; + } else { + return Some(Err(Error::invalid_byte(self.input, self.pos))); + } + } + }; + self.pos += 1; + } + match std::mem::replace(&mut self.state, State::Done) { + State::Done => {} + State::PreToken { + challenge, next, .. + } => { + trace!("eof, PreToken({:?})", next); + if (next.0 & P_EOF) == 0 { + return Some(Err(Error { + input: self.input, + pos: self.input.len(), + error: "unexpected EOF", + })); + } + if let Some(challenge) = challenge { + return Some(Ok(challenge)); + } + } + State::Token { + challenge, + token_pos, + cur, + } => { + trace!("eof, Token({:?})", cur); + if (cur.0 & P_SCHEME) == 0 { + return Some(Err(Error { + input: self.input, + pos: self.input.len(), + error: "unexpected EOF expecting =", + })); + } + if token_pos.end != self.input.len() && &self.input[token_pos.end..] != " " { + return Some(Err(Error { + input: self.input, + pos: self.input.len(), + error: "EOF after whitespace", + })); + } + if let Some(challenge) = challenge { + self.state = State::Token { + challenge: None, + token_pos, + cur, + }; + return Some(Ok(challenge)); + } + return Some(Ok(ChallengeRef::new(&self.input[token_pos]))); + } + State::PostEquals { .. } => { + trace!("eof, PostEquals"); + return Some(Err(Error { + input: self.input, + pos: self.input.len(), + error: "unexpected EOF expecting param value", + })); + } + State::ParamUnquotedValue { + mut challenge, + key_pos, + value_start, + } => { + trace!("eof, ParamUnquotedValue"); + challenge.params.push(( + &self.input[key_pos], + ParamValue { + escapes: 0, + escaped: &self.input[value_start..], + }, + )); + return Some(Ok(challenge)); + } + State::ParamQuotedValue { .. } => { + trace!("eof, ParamQuotedValue"); + return Some(Err(Error { + input: self.input, + pos: self.input.len(), + error: "unexpected EOF in quoted param value", + })); + } + } + None + } +} + +#[cfg(test)] +mod tests { + use crate::{ChallengeRef, ParamValue}; + + // A couple basic tests. The fuzz testing is far more comprehensive. + + #[test] + fn multi_challenge() { + // https://datatracker.ietf.org/doc/html/rfc7235#section-4.1 + let input = + r#"Newauth realm="apps", type=1, title="Login to \"apps\"", Basic realm="simple""#; + let challenges = crate::parse_challenges(input).unwrap(); + assert_eq!( + &challenges[..], + &[ + ChallengeRef { + scheme: "Newauth", + params: vec![ + ("realm", ParamValue::new(0, "apps")), + ("type", ParamValue::new(0, "1")), + ("title", ParamValue::new(2, r#"Login to \"apps\""#)), + ], + }, + ChallengeRef { + scheme: "Basic", + params: vec![("realm", ParamValue::new(0, "simple")),], + }, + ] + ); + } + + #[test] + fn empty() { + crate::parse_challenges("").unwrap_err(); + crate::parse_challenges(",").unwrap_err(); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/table.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/table.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/http-auth/src/table.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/http-auth/src/table.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +// Copyright (C) 2021 Scott Lamb +// SPDX-License-Identifier: MIT OR Apache-2.0 + +//! Builds and offers lookup on a table of byte values to the character +//! classes the respective bytes are part of. Most classes are referenced from +//! [RFC 7235 Appendix B: Imported ABNF](https://datatracker.ietf.org/doc/html/rfc7235#appendix-B) +//! or [RFC 7235 Appendix C: Collected ABNF](https://datatracker.ietf.org/doc/html/rfc7235#appendix-C). + +pub(crate) const C_TCHAR: u8 = 1; +pub(crate) const C_QDTEXT: u8 = 2; +pub(crate) const C_ESCAPABLE: u8 = 4; +pub(crate) const C_OWS: u8 = 8; +pub(crate) const C_ATTR: u8 = 16; + +static TABLE: [u8; 128] = build_table(); + +pub(crate) fn char_classes(b: u8) -> u8 { + *TABLE.get(usize::from(b)).unwrap_or(&0) +} + +const fn build_table() -> [u8; 128] { + // It'd be nice to use array::from_fn here, but it wasn't stablized until Rust 1.63. + let mut table = [0u8; 128]; + let mut i = 0; + while i < 128 { + let b = i as u8; + let mut classes = 0; + if is_tchar(b) { + classes |= C_TCHAR; + } + if is_qdtext(b) { + classes |= C_QDTEXT; + } + if is_escapable(b) { + classes |= C_ESCAPABLE; + } + if is_ows(b) { + classes |= C_OWS; + } + if is_attr(b) { + classes |= C_ATTR; + } + table[i] = classes; + i += 1; + } + table +} + +/// Returns if the byte is a `tchar` as defined in +/// [RFC 7230 section 3.2.6](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6). +const fn is_tchar(b: u8) -> bool { + // tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + // / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + // / DIGIT / ALPHA + // ; any VCHAR, except delimiters + matches!(b, + b'!' + | b'#' + | b'$' + | b'%' + | b'&' + | b'\'' + | b'*' + | b'+' + | b'-' + | b'.' + | b'^' + | b'_' + | b'`' + | b'|' + | b'~' + | b'0'..=b'9' + | b'a'..=b'z' + | b'A'..=b'Z') +} + +/// Returns true if the byte is a valid `qdtext` (excluding `obs-text`), as defined in +/// [RFC 7230 section 3.2.6](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6). +/// +/// ```text +/// quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE +/// qdtext = HTAB / SP /%x21 / %x23-5B / %x5D-7E / obs-text +/// obs-text = %x80-FF +/// quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) +/// VCHAR = %x21-7E +/// ; visible (printing) characters +/// ``` +const fn is_qdtext(b: u8) -> bool { + matches!(b, b'\t' | b' ' | 0x21 | 0x23..=0x5B | 0x5D..=0x7E) +} + +/// Returns true if the byte is a valid end of a `quoted-pair`, as defined in +/// [RFC 7230 section 3.2.6](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6). +const fn is_escapable(b: u8) -> bool { + matches!(b, b'\t' | b' ' | 0x21..=0x7E | 0x80..=0xFF) +} + +/// Returns true if the byte is a valid `attr-char` as defined in +/// [RFC 5987 section 3.2.1](https://datatracker.ietf.org/doc/html/rfc5987#section-3.2.1). +/// +/// ```text +/// attr-char = ALPHA / DIGIT +/// / "!" / "#" / "$" / "&" / "+" / "-" / "." +/// / "^" / "_" / "`" / "|" / "~" +/// ; token except ( "*" / "'" / "%" ) +/// ``` +const fn is_attr(b: u8) -> bool { + matches!(b, + b'a'..=b'z' + | b'A'..=b'Z' + | b'0'..=b'9' + | b'!' + | b'#' + | b'$' + | b'&' + | b'+' + | b'-' + | b'.' + | b'^' + | b'_' + | b'`' + | b'|' + | b'~') +} + +/// Returns true if the byte is valid optional whitespace as in [RFC 7230 section +/// 3.2.3](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.3). +/// +/// ```text +/// OWS = *( SP / HTAB ) +/// ; optional whitespace +/// ``` +const fn is_ows(b: u8) -> bool { + matches!(b, b' ' | b'\t') +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/build.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/build.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/build.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/build.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,106 @@ +use std::env::var; +use std::io::Write; + +fn main() { + // I/O safety is stabilized in Rust 1.63. + if has_io_safety() { + use_feature("io_safety_is_in_std") + } + + // Work around + // https://github.com/rust-lang/rust/issues/103306. + use_feature_or_nothing("wasi_ext"); + + // Rust 1.56 and earlier don't support panic in const fn. + if has_panic_in_const_fn() { + use_feature("panic_in_const_fn") + } + + // 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"); +} + +fn use_feature_or_nothing(feature: &str) { + if 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>(test: T) -> bool { + use std::process::Stdio; + + let out_dir = var("OUT_DIR").unwrap(); + let rustc = var("RUSTC").unwrap(); + let target = var("TARGET").unwrap(); + + let mut cmd = if let Ok(wrapper) = var("CARGO_RUSTC_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("--out-dir") + .arg(out_dir); // Put the output somewhere inconsequential. + + // 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() +} + +/// Test whether the rustc at `var("RUSTC")` supports panic in `const fn`. +fn has_panic_in_const_fn() -> bool { + can_compile("const fn foo() {{ panic!() }}") +} + +/// Test whether the rustc at `var("RUSTC")` supports the I/O safety feature. +fn has_io_safety() -> bool { + can_compile( + "\ + #[cfg(unix)]\n\ + use std::os::unix::io::OwnedFd as Owned;\n\ + #[cfg(target_os = \"wasi\")]\n\ + use std::os::wasi::io::OwnedFd as Owned;\n\ + #[cfg(windows)]\n\ + use std::os::windows::io::OwnedHandle as Owned;\n\ + \n\ + pub type Success = Owned;\n\ + ", + ) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,78 @@ +# 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" +name = "io-lifetimes" +version = "1.0.5" +authors = ["Dan Gohman "] +include = [ + "src", + "build.rs", + "Cargo.toml", + "COPYRIGHT", + "LICENSE*", + "/*.md", +] +description = "A low-level I/O ownership and borrowing library" +readme = "README.md" +keywords = [ + "api", + "io", +] +categories = [ + "os", + "rust-patterns", +] +license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" +repository = "https://github.com/sunfishcode/io-lifetimes" + +[features] +close = [ + "libc", +] +default = ["close"] + +[target."cfg(not(target_os = \"wasi\"))".dependencies.async-std] +version = "1.12.0" +optional = true + +[target."cfg(not(target_os = \"wasi\"))".dependencies.mio] +version = "0.8.0" +features = [ + "net", + "os-ext", +] +optional = true + +[target."cfg(not(target_os = \"wasi\"))".dependencies.os_pipe] +version = "1.0.0" +features = ["io_safety"] +optional = true + +[target."cfg(not(target_os = \"wasi\"))".dependencies.socket2] +version = "0.4.0" +optional = true + +[target."cfg(not(target_os = \"wasi\"))".dependencies.tokio] +version = "1.6.0" +features = [ + "io-std", + "fs", + "net", + "process", +] +optional = true + +[target."cfg(not(windows))".dependencies.libc] +version = "0.2.96" +optional = true + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 [report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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/io-lifetimes/blob/main/ORG_CODE_OF_CONDUCT.md +[homepage]: https://www.contributor-covenant.org +[version]: https://www.contributor-covenant.org/version/1/4/ diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/COPYRIGHT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/COPYRIGHT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/COPYRIGHT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/COPYRIGHT 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,29 @@ +Short version for non-lawyers: + +`io-lifetimes` is triple-licensed under Apache 2.0 with the LLVM Exception, +Apache 2.0, and MIT terms. + + +Longer version: + +Copyrights in the `io-lifetimes` project are retained by their contributors. +No copyright assignment is required to contribute to the `io-lifetimes` +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), `io-lifetimes` +is licensed under: + + - the Apache License, Version 2.0, with the LLVM Exception + or + + - the Apache License, Version 2.0 + or + , + - or the MIT license + or + , + +at your option. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/drop-fs-err.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/drop-fs-err.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/drop-fs-err.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/drop-fs-err.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Drop fs-err dep since it's not in Debian +Author: John Goerzen +Last-Update: 2022-10-27 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -35,10 +35,6 @@ + license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" + repository = "https://github.com/sunfishcode/io-lifetimes" + +-[dependencies.fs-err] +-version = "2.6.0" +-optional = true +- + [features] + close = [ + "libc", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/no-windows-sys.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/no-windows-sys.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/no-windows-sys.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/no-windows-sys.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,30 @@ +Description: No dependency on Windows +Author: John Goerzen +Last-Update: 2022-10-03 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -42,7 +42,6 @@ + [features] + close = [ + "libc", +- "windows-sys", + ] + default = ["close"] + +@@ -81,14 +80,3 @@ + version = "0.2.96" + optional = true + +-[target."cfg(windows)".dependencies.windows-sys] +-version = "0.45.0" +-features = [ +- "Win32_Foundation", +- "Win32_Storage_FileSystem", +- "Win32_Networking_WinSock", +- "Win32_Security", +- "Win32_System_IO", +- "Win32_System_Threading", +-] +-optional = true diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +no-windows-sys.diff +drop-fs-err.diff diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,201 @@ + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-Apache-2.0_WITH_LLVM-exception cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-Apache-2.0_WITH_LLVM-exception --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-Apache-2.0_WITH_LLVM-exception 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-Apache-2.0_WITH_LLVM-exception 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/ORG_CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/ORG_CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/ORG_CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/ORG_CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 +[report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,179 @@ +
+

io-lifetimes

+ +

+ A low-level I/O ownership and borrowing library +

+ +

+ Github Actions CI Status + crates.io page + docs.rs docs +

+
+ +This library introduces `OwnedFd`, `BorrowedFd`, and supporting types and +traits, and corresponding features for Windows, which implement safe owning +and borrowing I/O lifetime patterns. + +This is associated with [RFC 3128], the I/O Safety RFC, which is now merged. +Work is now underway to move the `OwnedFd` and `BorrowedFd` types and `AsFd` +trait developed here into `std`. + +For a quick taste, check out the code examples: + + - [hello], a basic demo of this API, doing low-level I/O manually, using the + [provided example FFI bindings] + - [easy-conversions], demonstrating the `from_into` convenience feature for + converting from an `impl Into*` into an `impl From*`. + - [portable-views], demonstrating the convenience feature which allows one + to temporarily "view" a file descriptor as any owning type such as `File` + - [flexible-apis], demonstrating how to write library APIs that accept + untyped I/O resources. + - [owning-wrapper], demonstrating how to implement a type which wraps an + `Owned*` type. + +[hello]: https://github.com/sunfishcode/io-lifetimes/blob/main/examples/hello.rs +[easy-conversions]: https://github.com/sunfishcode/io-lifetimes/blob/main/examples/easy-conversions.rs +[portable-views]: https://github.com/sunfishcode/io-lifetimes/blob/main/examples/portable-views.rs +[flexible-apis]: https://github.com/sunfishcode/io-lifetimes/blob/main/examples/flexible-apis.rs +[owning-wrapper]: https://github.com/sunfishcode/io-lifetimes/blob/main/examples/owning-wrapper.rs +[provided example FFI bindings]: https://github.com/sunfishcode/io-lifetimes/blob/main/src/example_ffi.rs + +The core of the API is very simple, and consists of two main types and three +main traits: + +```rust +pub struct BorrowedFd<'fd> { ... } +pub struct OwnedFd { ... } + +pub trait AsFd { ... } +pub trait IntoFd { ... } +pub trait FromFd { ... } + +impl AsRawFd for BorrowedFd<'_> { ... } +impl AsRawFd for OwnedFd { ... } +impl IntoRawFd for OwnedFd { ... } +impl FromRawFd for OwnedFd { ... } + +impl Drop for OwnedFd { ... } + +impl AsFd for BorrowedFd<'_> { ... } +impl AsFd for OwnedFd { ... } +impl IntoFd for OwnedFd { ... } +impl FromFd for OwnedFd { ... } +``` + +On Windows, there are `Handle` and `Socket` versions of every `Fd` thing, and +a special `HandleOrInvalid` type to cope with inconsistent error reporting +in the Windows API. + +## The magic of transparency + +Here's the fun part. `BorrowedFd` and `OwnedFd` are `repr(transparent)` and +hold `RawFd` values, and `Option` and `Option` are +FFI-safe (on Rust >= 1.63), so they can all be used in FFI [directly]: + +[directly]: https://github.com/sunfishcode/io-lifetimes/blob/main/src/example_ffi.rs + +```rust +extern "C" { + pub fn open(pathname: *const c_char, flags: c_int, ...) -> Option; + pub fn read(fd: BorrowedFd<'_>, ptr: *mut c_void, size: size_t) -> ssize_t; + pub fn write(fd: BorrowedFd<'_>, ptr: *const c_void, size: size_t) -> ssize_t; + pub fn close(fd: OwnedFd) -> c_int; +} +``` + +With bindings like this, users never have to touch `RawFd` values. Of course, +not all code will do this, but it is a fun feature for code that can. This +is what motivates having `BorrowedFd` instead of just using `&OwnedFd`. + +Note the use of `Option` as the return value of `open`, representing +the fact that it can either succeed or fail. + +## I/O Safety in Rust + +I/O Safety feature is stablized in Rust 1.63. With this version or later, +io-lifetimes will use and re-export the standard-library types and traits. With +older versions, io-lifetimes defines its own copy of these types and traits. + +io-lifetimes also includes several features which are not (yet?) in std, +including the portability traits `AsFilelike`/`AsSocketlike`/etc., the +`from_into_*` functions in the `From*` traits, and [views]. + +[views]: https://docs.rs/io-lifetimes/*/io_lifetimes/views/index.html + +## Prior Art + +There are several similar crates: [fd](https://crates.io/crates/fd), +[filedesc](https://crates.io/crates/filedesc), +[filedescriptor](https://crates.io/crates/filedescriptor), +[owned-fd](https://crates.io/crates/owned-fd), and +[unsafe-io](https://crates.io/crates/unsafe-io). + +Some of these provide additional features such as the ability to create pipes +or sockets, to get and set flags, and to do read and write operations. +io-lifetimes omits these features, leaving them to to be provided as separate +layers on top. + +Most of these crates provide ways to duplicate a file descriptor. io-lifetimes +currently treats this as another feature that can be provided by a layer on +top, though if there are use cases where this is a common operation, it could +be added. + +io-lifetimes's distinguishing features are its use of `repr(transparent)` +to support direct FFI usage, niche optimizations so `Option` can support direct +FFI usafe as well (on Rust >= 1.63), lifetime-aware `As*`/`Into*`/`From*` +traits which leverage Rust's lifetime system and allow safe and checked +`from_*` and `as_*`/`into_*` functions, and powerful convenience features +enabled by its underlying safety. + +io-lifetimes also has full Windows support, as well as Unix/Windows +portability abstractions, covering both file-like and socket-like types. + +io-lifetimes's [`OwnedFd`] type is similar to +[fd](https://crates.io/crates/fd)'s +[`FileDesc`](https://docs.rs/fd/0.2.3/fd/struct.FileDesc.html). io-lifetimes +doesn't have a `close_on_drop` parameter, and instead uses [`OwnedFd`] and +[`BorrowedFd`] to represent dropping and non-dropping handles, respectively, in +a way that is checked at compile time rather than runtime. + +io-lifetimes's [`OwnedFd`] type is also similar to +[filedesc](https://crates.io/crates/filedesc)'s +[`FileDesc`](https://docs.rs/filedesc/0.3.0/filedesc/struct.FileDesc.html) +io-lifetimes's `OwnedFd` reserves the value -1, so it doesn't need to test for +`-1` in its `Drop`, and `Option` (on Rust >= 1.63) is the same size +as `FileDesc`. + +io-lifetimes's [`OwnedFd`] type is also similar to +[owned-fd](https://crates.io/crates/owned-fd)'s +[`OwnedFd`](https://docs.rs/owned-fd/0.1.0/owned_fd/struct.OwnedFd.html). +io-lifetimes doesn't implement `Clone`, because duplicating a file descriptor +can fail due to OS process limits, while `Clone` is an infallible interface. + +io-lifetimes's [`BorrowedFd`] is similar to +[owned-fd](https://crates.io/crates/owned-fd)'s +[`FdRef`](https://docs.rs/owned-fd/0.1.0/owned_fd/struct.FdRef.html), except it +uses a lifetime parameter and `PhantomData` rather than transmuting a raw file +descriptor value into a reference value. + +io-lifetimes's convenience features are similar to those of +[unsafe-io](https://crates.io/crates/unsafe-io), but io-lifetimes is built on +its own `As*`/`Into*`/`From*` traits, rather than extending +`AsRaw*`/`IntoRaw*`/`FromRaw*` with +[`OwnsRaw`](https://docs.rs/unsafe-io/0.6.9/unsafe_io/trait.OwnsRaw.html), so +they're simpler and safer to use. io-lifetimes doesn't include unsafe-io's +`*ReadWrite*` or `*HandleOrSocket*` abstractions, and leaves these as features +to be provided by separate layers on top. + +## Minimum Supported Rust Version (MSRV) + +This crate currently works on the version of [Rust on Debian stable], which is +currently Rust 1.48. 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. + +[`OwnedFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/struct.OwnedFd.html +[`BorrowedFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/struct.BorrowedFd.html +[RFC 3128]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/example_ffi.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/example_ffi.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/example_ffi.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/example_ffi.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,75 @@ +//! This is just a sample of what FFI using this crate can look like. + +#![cfg_attr(not(io_safety_is_in_std), allow(unused_imports))] +#![allow(missing_docs)] + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{BorrowedFd, OwnedFd}; +#[cfg(windows)] +use crate::{BorrowedHandle, HandleOrInvalid}; + +#[cfg(any(unix, target_os = "wasi"))] +use libc::{c_char, c_int, c_void, size_t, ssize_t}; +#[cfg(windows)] +use { + core::ffi::c_void, + windows_sys::core::PCWSTR, + windows_sys::Win32::Foundation::BOOL, + windows_sys::Win32::Security::SECURITY_ATTRIBUTES, + windows_sys::Win32::Storage::FileSystem::{ + FILE_ACCESS_FLAGS, FILE_CREATION_DISPOSITION, FILE_FLAGS_AND_ATTRIBUTES, FILE_SHARE_MODE, + }, + windows_sys::Win32::System::IO::OVERLAPPED, +}; + +// Declare a few FFI functions ourselves, to show off the FFI ergonomics. +#[cfg(all(io_safety_is_in_std, any(unix, target_os = "wasi")))] +extern "C" { + pub fn open(pathname: *const c_char, flags: c_int, ...) -> Option; +} +#[cfg(any(unix, target_os = "wasi"))] +extern "C" { + pub fn read(fd: BorrowedFd<'_>, ptr: *mut c_void, size: size_t) -> ssize_t; + pub fn write(fd: BorrowedFd<'_>, ptr: *const c_void, size: size_t) -> ssize_t; +} +#[cfg(any(unix, target_os = "wasi"))] +pub use libc::{O_CLOEXEC, O_CREAT, O_RDONLY, O_RDWR, O_TRUNC, O_WRONLY}; + +// The Windows analogs of the above. Note the use of [`HandleOrInvalid`] as +// the return type for `CreateFileW`, since that function is defined to return +// [`INVALID_HANDLE_VALUE`] on error instead of null. +#[cfg(windows)] +extern "system" { + pub fn CreateFileW( + lpfilename: PCWSTR, + dwdesiredaccess: FILE_ACCESS_FLAGS, + dwsharemode: FILE_SHARE_MODE, + lpsecurityattributes: *const SECURITY_ATTRIBUTES, + dwcreationdisposition: FILE_CREATION_DISPOSITION, + dwflagsandattributes: FILE_FLAGS_AND_ATTRIBUTES, + htemplatefile: HANDLE, + ) -> HandleOrInvalid; + pub fn ReadFile( + hfile: BorrowedHandle<'_>, + lpbuffer: *mut c_void, + nnumberofbytestoread: u32, + lpnumberofbytesread: *mut u32, + lpoverlapped: *mut OVERLAPPED, + ) -> BOOL; + pub fn WriteFile( + hfile: BorrowedHandle<'_>, + lpbuffer: *const c_void, + nnumberofbytestowrite: u32, + lpnumberofbyteswritten: *mut u32, + lpoverlapped: *mut OVERLAPPED, + ) -> BOOL; +} + +#[cfg(windows)] +pub use { + windows_sys::Win32::Foundation::HANDLE, + windows_sys::Win32::Storage::FileSystem::{ + CREATE_ALWAYS, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, FILE_GENERIC_READ, FILE_GENERIC_WRITE, + OPEN_EXISTING, + }, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_async_std.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_async_std.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_async_std.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_async_std.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,509 @@ +//! Implementations of io-lifetimes' traits for async-std's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, FromFd, IntoFd, OwnedFd}; +#[cfg(windows)] +use crate::{ + AsHandle, AsSocket, BorrowedHandle, BorrowedSocket, FromHandle, FromSocket, IntoHandle, + IntoSocket, OwnedHandle, OwnedSocket, +}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{ + AsRawHandle, AsRawSocket, FromRawHandle, FromRawSocket, IntoRawHandle, IntoRawSocket, +}; + +unsafe impl FilelikeViewType for async_std::fs::File {} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::fs::File { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for async_std::fs::File { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for async_std::fs::File { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::fs::File) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for async_std::fs::File { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: async_std::fs::File) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for async_std::fs::File { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for async_std::fs::File { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for async_std::fs::File { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for async_std::fs::File { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::net::TcpStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for async_std::net::TcpStream { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for async_std::net::TcpStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::net::TcpStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for async_std::net::TcpStream { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: async_std::net::TcpStream) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for async_std::net::TcpStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for async_std::net::TcpStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for async_std::net::TcpStream { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for async_std::net::TcpStream { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::net::TcpListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for async_std::net::TcpListener { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for async_std::net::TcpListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::net::TcpListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for async_std::net::TcpListener { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: async_std::net::TcpListener) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for async_std::net::TcpListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for async_std::net::TcpListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for async_std::net::TcpListener { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for async_std::net::TcpListener { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::net::UdpSocket { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for async_std::net::UdpSocket { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for async_std::net::UdpSocket { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::net::UdpSocket) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for async_std::net::UdpSocket { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: async_std::net::UdpSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for async_std::net::UdpSocket { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for async_std::net::UdpSocket { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for async_std::net::UdpSocket { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for async_std::net::UdpSocket { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::io::Stdin { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for async_std::io::Stdin { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::io::Stdout { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for async_std::io::Stdout { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for async_std::io::Stderr { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for async_std::io::Stderr { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for async_std::os::unix::net::UnixStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for async_std::os::unix::net::UnixStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::os::unix::net::UnixStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for async_std::os::unix::net::UnixStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for async_std::os::unix::net::UnixStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for async_std::os::unix::net::UnixListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for async_std::os::unix::net::UnixListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::os::unix::net::UnixListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for async_std::os::unix::net::UnixListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for async_std::os::unix::net::UnixListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for async_std::os::unix::net::UnixDatagram { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for async_std::os::unix::net::UnixDatagram { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: async_std::os::unix::net::UnixDatagram) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for async_std::os::unix::net::UnixDatagram { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for async_std::os::unix::net::UnixDatagram { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_fs_err.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_fs_err.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_fs_err.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_fs_err.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,62 @@ +//! Implementations of io-lifetimes' traits for fs_err's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, IntoFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsHandle, BorrowedHandle, IntoHandle, OwnedHandle}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{AsRawHandle, FromRawHandle, IntoRawHandle}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for fs_err::File { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for fs_err::File { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for fs_err::File { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: fs_err::File) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for fs_err::File { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: fs_err::File) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_mio.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_mio.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_mio.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_mio.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,454 @@ +//! Implementations of io-lifetimes' traits for mio's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, FromFd, IntoFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsSocket, BorrowedSocket, FromSocket, IntoSocket, OwnedSocket}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{AsRawSocket, FromRawSocket, IntoRawSocket}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for mio::net::TcpStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for mio::net::TcpStream { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for mio::net::TcpStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::TcpStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for mio::net::TcpStream { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: mio::net::TcpStream) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for mio::net::TcpStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for mio::net::TcpStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for mio::net::TcpStream { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for mio::net::TcpStream { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for mio::net::TcpListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for mio::net::TcpListener { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for mio::net::TcpListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::TcpListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for mio::net::TcpListener { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: mio::net::TcpListener) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for mio::net::TcpListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for mio::net::TcpListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for mio::net::TcpListener { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for mio::net::TcpListener { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for mio::net::UdpSocket { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for mio::net::UdpSocket { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for mio::net::UdpSocket { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::UdpSocket) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for mio::net::UdpSocket { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: mio::net::UdpSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for mio::net::UdpSocket { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for mio::net::UdpSocket { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for mio::net::UdpSocket { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for mio::net::UdpSocket { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(unix)] +impl AsFd for mio::net::UnixDatagram { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for mio::net::UnixDatagram { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::UnixDatagram) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for mio::net::UnixDatagram { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for mio::net::UnixDatagram { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for mio::net::UnixListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for mio::net::UnixListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::UnixListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for mio::net::UnixListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for mio::net::UnixListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for mio::net::UnixStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for mio::net::UnixStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::net::UnixStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for mio::net::UnixStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for mio::net::UnixStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for mio::unix::pipe::Receiver { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for mio::unix::pipe::Receiver { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::unix::pipe::Receiver) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for mio::unix::pipe::Receiver { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for mio::unix::pipe::Receiver { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for mio::unix::pipe::Sender { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for mio::unix::pipe::Sender { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: mio::unix::pipe::Sender) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for mio::unix::pipe::Sender { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for mio::unix::pipe::Sender { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_os_pipe.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_os_pipe.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_os_pipe.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_os_pipe.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,174 @@ +//! Implementations of io-lifetimes' traits for os_pipe's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, FromFd, IntoFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsHandle, BorrowedHandle, FromHandle, IntoHandle, OwnedHandle}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{AsRawHandle, FromRawHandle, IntoRawHandle}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for os_pipe::PipeReader { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for os_pipe::PipeReader { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for os_pipe::PipeReader { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: os_pipe::PipeReader) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for os_pipe::PipeReader { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: os_pipe::PipeReader) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for os_pipe::PipeReader { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for os_pipe::PipeReader { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for os_pipe::PipeReader { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for os_pipe::PipeReader { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for os_pipe::PipeWriter { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for os_pipe::PipeWriter { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for os_pipe::PipeWriter { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: os_pipe::PipeWriter) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for os_pipe::PipeWriter { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: os_pipe::PipeWriter) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for os_pipe::PipeWriter { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for os_pipe::PipeWriter { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for os_pipe::PipeWriter { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for os_pipe::PipeWriter { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_socket2.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_socket2.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_socket2.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_socket2.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,94 @@ +//! Implementations of io-lifetimes' traits for socket2's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, FromFd, IntoFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsSocket, BorrowedSocket, FromSocket, IntoSocket, OwnedSocket}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{AsRawSocket, FromRawSocket, IntoRawSocket}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for socket2::Socket { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for socket2::Socket { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for socket2::Socket { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: socket2::Socket) -> Self { + unsafe { OwnedFd::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for socket2::Socket { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: socket2::Socket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for socket2::Socket { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for socket2::Socket { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for socket2::Socket { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for socket2::Socket { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_std.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_std.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_std.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_std.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,890 @@ +#![allow(deprecated)] // Don't warn on `IntoFd` and `FromFd` impls. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, FromFd, IntoFd}; +#[cfg(windows)] +use crate::{AsHandle, AsSocket, FromHandle, FromSocket, IntoHandle, IntoSocket}; +#[cfg(any(unix, target_os = "wasi"))] +use crate::{BorrowedFd, OwnedFd}; +#[cfg(windows)] +use crate::{BorrowedHandle, BorrowedSocket, HandleOrInvalid, OwnedHandle, OwnedSocket}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{ + AsRawHandle, AsRawSocket, FromRawHandle, FromRawSocket, IntoRawHandle, IntoRawSocket, +}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for BorrowedFd<'_> { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for BorrowedHandle<'_> { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl AsSocket for BorrowedSocket<'_> { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for OwnedFd { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for OwnedHandle { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl AsSocket for OwnedSocket { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for OwnedFd { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { Self::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for OwnedHandle { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { Self::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl IntoSocket for OwnedSocket { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { Self::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for OwnedFd { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for OwnedHandle { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl FromSocket for OwnedSocket { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl FromHandle for HandleOrInvalid { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for HandleOrInvalid { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::fs::File { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::fs::File { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for std::fs::File { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: std::fs::File) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::fs::File { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: std::fs::File) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for std::fs::File { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for std::fs::File { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for std::fs::File { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for std::fs::File { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::net::TcpStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for std::net::TcpStream { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for std::net::TcpStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: std::net::TcpStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for std::net::TcpStream { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: std::net::TcpStream) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for std::net::TcpStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for std::net::TcpStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for std::net::TcpStream { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for std::net::TcpStream { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::net::TcpListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for std::net::TcpListener { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for std::net::TcpListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: std::net::TcpListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for std::net::TcpListener { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: std::net::TcpListener) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for std::net::TcpListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for std::net::TcpListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for std::net::TcpListener { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for std::net::TcpListener { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::net::UdpSocket { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for std::net::UdpSocket { + #[inline] + fn as_socket(&self) -> BorrowedSocket { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoFd for std::net::UdpSocket { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for OwnedFd { + #[inline] + fn from(owned: std::net::UdpSocket) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoSocket for std::net::UdpSocket { + #[inline] + fn into_socket(self) -> OwnedSocket { + unsafe { OwnedSocket::from_raw_socket(self.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for OwnedSocket { + #[inline] + fn from(owned: std::net::UdpSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for std::net::UdpSocket { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for std::net::UdpSocket { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromSocket for std::net::UdpSocket { + #[inline] + fn from_socket(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(windows)] +impl From for std::net::UdpSocket { + #[inline] + fn from(owned: OwnedSocket) -> Self { + unsafe { Self::from_raw_socket(owned.into_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::io::Stdin { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::io::Stdin { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl<'a> AsFd for std::io::StdinLock<'a> { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl<'a> AsHandle for std::io::StdinLock<'a> { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::io::Stdout { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::io::Stdout { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl<'a> AsFd for std::io::StdoutLock<'a> { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl<'a> AsHandle for std::io::StdoutLock<'a> { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for std::io::Stderr { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::io::Stderr { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl<'a> AsFd for std::io::StderrLock<'a> { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl<'a> AsHandle for std::io::StderrLock<'a> { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for std::process::ChildStdin { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::process::ChildStdin { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::process::ChildStdin { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::process::ChildStdin) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::process::ChildStdin { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: std::process::ChildStdin) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for std::process::ChildStdout { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::process::ChildStdout { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::process::ChildStdout { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::process::ChildStdout) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::process::ChildStdout { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: std::process::ChildStdout) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for std::process::ChildStderr { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::process::ChildStderr { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::process::ChildStderr { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::process::ChildStderr) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::process::ChildStderr { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: std::process::ChildStderr) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(unix)] +impl FromFd for std::process::Stdio { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for std::process::Stdio { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for std::process::Stdio { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for std::process::Stdio { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::process::Child { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::process::Child { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for OwnedHandle { + #[inline] + fn from(owned: std::process::Child) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for std::os::unix::net::UnixStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::os::unix::net::UnixStream { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::os::unix::net::UnixStream) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for std::os::unix::net::UnixStream { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for std::os::unix::net::UnixStream { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for std::os::unix::net::UnixListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::os::unix::net::UnixListener { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::os::unix::net::UnixListener) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for std::os::unix::net::UnixListener { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for std::os::unix::net::UnixListener { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for std::os::unix::net::UnixDatagram { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl IntoFd for std::os::unix::net::UnixDatagram { + #[inline] + fn into_fd(self) -> OwnedFd { + unsafe { OwnedFd::from_raw_fd(self.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for OwnedFd { + #[inline] + fn from(owned: std::os::unix::net::UnixDatagram) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl FromFd for std::os::unix::net::UnixDatagram { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(unix)] +impl From for std::os::unix::net::UnixDatagram { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for std::thread::JoinHandle { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl IntoHandle for std::thread::JoinHandle { + #[inline] + fn into_handle(self) -> OwnedHandle { + unsafe { OwnedHandle::from_raw_handle(self.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From> for OwnedHandle { + #[inline] + fn from(owned: std::thread::JoinHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_tokio.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_tokio.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_tokio.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/impls_tokio.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,214 @@ +//! Implementations of io-lifetimes' traits for tokio's types. In the +//! future, we'll prefer to have crates provide their own impls; this is +//! just a temporary measure. + +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, FromFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsHandle, AsSocket, BorrowedHandle, BorrowedSocket, FromHandle, OwnedHandle}; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd}; +#[cfg(windows)] +use std::os::windows::io::{AsRawHandle, AsRawSocket, FromRawHandle, IntoRawHandle}; + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::fs::File { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::fs::File { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromFd for tokio::fs::File { + #[inline] + fn from_fd(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl From for tokio::fs::File { + #[inline] + fn from(owned: OwnedFd) -> Self { + unsafe { Self::from_raw_fd(owned.into_raw_fd()) } + } +} + +#[cfg(windows)] +impl FromHandle for tokio::fs::File { + #[inline] + fn from_handle(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(windows)] +impl From for tokio::fs::File { + #[inline] + fn from(owned: OwnedHandle) -> Self { + unsafe { Self::from_raw_handle(owned.into_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::net::TcpStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for tokio::net::TcpStream { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::net::TcpListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for tokio::net::TcpListener { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::net::UdpSocket { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsSocket for tokio::net::UdpSocket { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + unsafe { BorrowedSocket::borrow_raw(self.as_raw_socket()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::io::Stdin { + #[inline] + fn as_fd(&self) -> BorrowedFd { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::io::Stdin { + #[inline] + fn as_handle(&self) -> BorrowedHandle { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::io::Stdout { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::io::Stdout { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::io::Stderr { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::io::Stderr { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(unix)] +impl AsFd for tokio::net::UnixStream { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for tokio::net::UnixListener { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(unix)] +impl AsFd for tokio::net::UnixDatagram { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for tokio::process::ChildStdout { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + unsafe { BorrowedFd::borrow_raw(self.as_raw_fd()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::process::ChildStdin { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::process::ChildStdout { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} + +#[cfg(windows)] +impl AsHandle for tokio::process::ChildStderr { + #[inline] + fn as_handle(&self) -> BorrowedHandle { + unsafe { BorrowedHandle::borrow_raw(self.as_raw_handle()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,187 @@ +//! Experimental new types and traits to replace the `Raw` family of types and +//! traits. +//! +//! This API has much conceptual similarity with the `Raw` API, but introduces +//! explicit concepts of ownership and borrowing: +//! +//! | `Raw` API | This experimental API | +//! | ---------- | ------------------------ | +//! | `Raw*` | `Borrowed*` and `Owned*` | +//! | `AsRaw*` | `As*` | +//! | `IntoRaw*` | `Into*` | +//! | `FromRaw*` | `From*` | +//! +//! This gives it several advantages: +//! +//! - Less `unsafe` in user code! +//! +//! - Easier to understand ownership. +//! +//! - It avoids the inconsistency where `AsRawFd` and `IntoRawFd` return +//! `RawFd` values that users ought to be able to trust, but aren't unsafe, +//! so it's possible to fail to uphold this trust in purely safe Rust. +//! +//! - It enables a number of safe and portable convenience features, such as +//! [safe typed views] and [from+into conversions]. +//! +//! [safe typed views]: AsFilelike::as_filelike_view +//! [from+into conversions]: FromFilelike::from_into_filelike + +#![deny(missing_docs)] +// Work around https://github.com/rust-lang/rust/issues/103306. +#![cfg_attr(all(wasi_ext, target_os = "wasi"), feature(wasi_ext))] +// Currently supported platforms. +#![cfg(any(unix, windows, target_os = "wasi"))] + +mod portability; +mod traits; +#[cfg(not(io_safety_is_in_std))] +mod types; + +#[cfg(not(io_safety_is_in_std))] +mod impls_std; + +#[cfg(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +pub use traits::AsFd; +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +pub use traits::{AsHandle, AsSocket}; +#[cfg(any(unix, target_os = "wasi"))] +#[allow(deprecated)] +pub use traits::{FromFd, IntoFd}; +#[cfg(windows)] +#[allow(deprecated)] +pub use traits::{FromHandle, FromSocket, IntoHandle, IntoSocket}; + +#[cfg(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +pub use types::{BorrowedFd, OwnedFd}; +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +pub use types::{ + BorrowedHandle, BorrowedSocket, HandleOrInvalid, InvalidHandleError, NullHandleError, + OwnedHandle, OwnedSocket, +}; + +#[cfg(io_safety_is_in_std)] +#[cfg(unix)] +pub use std::os::unix::io::{AsFd, BorrowedFd, OwnedFd}; +#[cfg(io_safety_is_in_std)] +#[cfg(target_os = "wasi")] +pub use std::os::wasi::io::{AsFd, BorrowedFd, OwnedFd}; +#[cfg(io_safety_is_in_std)] +#[cfg(windows)] +pub use std::os::windows::io::{ + AsHandle, AsSocket, BorrowedHandle, BorrowedSocket, HandleOrInvalid, InvalidHandleError, + NullHandleError, OwnedHandle, OwnedSocket, +}; + +// io-lifetimes defined `FromFd`/`IntoFd` traits instead of just using +// `From`/`Into` because that allowed it to implement them for foreign types, +// including std types like File and TcpStream, and popular third-party types. +// +// std just uses `From`/`Into`, because it defines those traits itself so it +// can implement them for std types itself, and std won't be implementing them +// for third-party types. However, this means that until `OwnedFd` et al are +// stabilized, there will be no impls for third-party traits. +// +// So we define `FromFd`/`IntoFd` traits, and implement them in terms of +// `From`/`Into`, +#[cfg(io_safety_is_in_std)] +#[cfg(any(unix, target_os = "wasi"))] +#[allow(deprecated)] +impl> FromFd for T { + #[inline] + fn from_fd(owned_fd: OwnedFd) -> Self { + owned_fd.into() + } +} +#[cfg(io_safety_is_in_std)] +#[cfg(any(unix, target_os = "wasi"))] +#[allow(deprecated)] +impl IntoFd for T +where + OwnedFd: From, +{ + #[inline] + fn into_fd(self) -> OwnedFd { + self.into() + } +} + +#[cfg(io_safety_is_in_std)] +#[cfg(windows)] +#[allow(deprecated)] +impl> FromHandle for T { + #[inline] + fn from_handle(owned_handle: OwnedHandle) -> Self { + owned_handle.into() + } +} +#[cfg(io_safety_is_in_std)] +#[cfg(windows)] +#[allow(deprecated)] +impl IntoHandle for T +where + OwnedHandle: From, +{ + #[inline] + fn into_handle(self) -> OwnedHandle { + self.into() + } +} + +#[cfg(io_safety_is_in_std)] +#[cfg(windows)] +#[allow(deprecated)] +impl> FromSocket for T { + #[inline] + fn from_socket(owned_socket: OwnedSocket) -> Self { + owned_socket.into() + } +} +#[cfg(io_safety_is_in_std)] +#[cfg(windows)] +#[allow(deprecated)] +impl IntoSocket for T +where + OwnedSocket: From, +{ + #[inline] + fn into_socket(self) -> OwnedSocket { + self.into() + } +} + +pub use portability::{ + AsFilelike, AsSocketlike, BorrowedFilelike, BorrowedSocketlike, FromFilelike, FromSocketlike, + IntoFilelike, IntoSocketlike, OwnedFilelike, OwnedSocketlike, +}; + +#[cfg(feature = "close")] +pub mod example_ffi; +pub mod raw; +pub mod views; + +// Ideally, we'd want crates to implement our traits themselves. But for now, +// while we're prototyping, we provide a few impls on foreign types. +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "async-std")] +mod impls_async_std; +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "fs-err")] +mod impls_fs_err; +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "mio")] +mod impls_mio; +#[cfg(not(target_os = "wasi"))] +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "os_pipe")] +mod impls_os_pipe; +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "socket2")] +mod impls_socket2; +#[cfg(not(io_safety_is_in_std))] +#[cfg(feature = "tokio")] +mod impls_tokio; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/portability.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/portability.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/portability.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/portability.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,521 @@ +//! Portability abstractions over `Owned*` and `Borrowed*`. +//! +//! On Unix, "everything is a file descriptor". On Windows, file/pipe/process +//! handles are distinct from socket descriptors. This file provides a minimal +//! layer of portability over this difference. + +use crate::views::{FilelikeView, FilelikeViewType, SocketlikeView, SocketlikeViewType}; +#[cfg(any(unix, target_os = "wasi"))] +use crate::{AsFd, BorrowedFd, OwnedFd}; +#[cfg(windows)] +use crate::{AsHandle, AsSocket, BorrowedHandle, BorrowedSocket, OwnedHandle, OwnedSocket}; + +/// A reference to a filelike object. +/// +/// This is a portability abstraction over Unix-like [`BorrowedFd`] and +/// Windows' `BorrowedHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub type BorrowedFilelike<'filelike> = BorrowedFd<'filelike>; + +/// A reference to a filelike object. +/// +/// This is a portability abstraction over Unix-like `BorrowedFd` and +/// Windows' [`BorrowedHandle`]. +#[cfg(windows)] +pub type BorrowedFilelike<'filelike> = BorrowedHandle<'filelike>; + +/// A reference to a socketlike object. +/// +/// This is a portability abstraction over Unix-like [`BorrowedFd`] and +/// Windows' `BorrowedSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub type BorrowedSocketlike<'socketlike> = BorrowedFd<'socketlike>; + +/// A reference to a socketlike object. +/// +/// This is a portability abstraction over Unix-like `BorrowedFd` and +/// Windows' [`BorrowedSocket`]. +#[cfg(windows)] +pub type BorrowedSocketlike<'socketlike> = BorrowedSocket<'socketlike>; + +/// An owned filelike object. +/// +/// This is a portability abstraction over Unix-like [`OwnedFd`] and +/// Windows' `OwnedHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub type OwnedFilelike = OwnedFd; + +/// An owned filelike object. +/// +/// This is a portability abstraction over Unix-like `OwnedFd` and +/// Windows' [`OwnedHandle`]. +#[cfg(windows)] +pub type OwnedFilelike = OwnedHandle; + +/// An owned socketlike object. +/// +/// This is a portability abstraction over Unix-like [`OwnedFd`] and +/// Windows' `OwnedSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub type OwnedSocketlike = OwnedFd; + +/// An owned socketlike object. +/// +/// This is a portability abstraction over Unix-like `OwnedFd` and +/// Windows' [`OwnedSocket`]. +#[cfg(windows)] +pub type OwnedSocketlike = OwnedSocket; + +/// A portable trait to borrow a reference from an underlying filelike object. +/// +/// This is a portability abstraction over Unix-like [`AsFd`] and Windows' +/// `AsHandle`. It also provides the `as_filelike_view` convenience function +/// providing typed views. +#[cfg(any(unix, target_os = "wasi"))] +pub trait AsFilelike: AsFd { + /// Borrows the reference. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{AsFilelike, BorrowedFilelike}; + /// + /// let mut f = File::open("foo.txt")?; + /// let borrowed_filelike: BorrowedFilelike<'_> = f.as_filelike(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn as_filelike(&self) -> BorrowedFilelike<'_>; + + /// Return a borrowing view of a resource which dereferences to a `&Target`. + /// + /// Note that [`Read`] or [`Write`] require `&mut Target`, but in some cases, + /// such as [`File`], `Read` and `Write` are implemented for `&Target` in + /// addition to `Target`, and you can get a `&mut &Target` by doing `&*` on + /// the resuting view, like this: + /// + /// ```rust,ignore + /// let v = f.as_filelike_view::(); + /// (&*v).read(&mut buf).unwrap(); + /// ``` + /// + /// [`File`]: std::fs::File + /// [`Read`]: std::io::Read + /// [`Write`]: std::io::Write + fn as_filelike_view(&self) -> FilelikeView<'_, Target>; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsFilelike for T { + #[inline] + fn as_filelike(&self) -> BorrowedFilelike<'_> { + self.as_fd() + } + + #[inline] + fn as_filelike_view(&self) -> FilelikeView<'_, Target> { + FilelikeView::new(self) + } +} + +/// A portable trait to borrow a reference from an underlying filelike object. +/// +/// This is a portability abstraction over Unix-like `AsFd` and Windows' +/// [`AsHandle`]. It also provides the `as_filelike_view` convenience function +/// providing typed views. +#[cfg(windows)] +pub trait AsFilelike: AsHandle { + /// Borrows the reference. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{AsFilelike, BorrowedFilelike}; + /// + /// let mut f = File::open("foo.txt")?; + /// let borrowed_filelike: BorrowedFilelike<'_> = f.as_filelike(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn as_filelike(&self) -> BorrowedFilelike<'_>; + + /// Return a borrowing view of a resource which dereferences to a `&Target`. + /// + /// Note that [`Read`] or [`Write`] require `&mut Target`, but in some cases, + /// such as [`File`], `Read` and `Write` are implemented for `&Target` in + /// addition to `Target`, and you can get a `&mut &Target` by doing `&*` on + /// the resuting view, like this: + /// + /// ```rust,ignore + /// let v = f.as_filelike_view::(); + /// (&*v).read(&mut buf).unwrap(); + /// ``` + /// + /// [`File`]: std::fs::File + /// [`Read`]: std::io::Read + /// [`Write`]: std::io::Write + fn as_filelike_view(&self) -> FilelikeView<'_, Target>; +} + +#[cfg(windows)] +impl AsFilelike for T { + #[inline] + fn as_filelike(&self) -> BorrowedFilelike<'_> { + self.as_handle() + } + + #[inline] + fn as_filelike_view(&self) -> FilelikeView<'_, Target> { + FilelikeView::new(self) + } +} + +/// A portable trait to borrow a reference from an underlying socketlike +/// object. +/// +/// This is a portability abstraction over Unix-like [`AsFd`] and Windows' +/// `AsSocket`. It also provides the `as_socketlike_view` convenience +/// function providing typed views. +#[cfg(any(unix, target_os = "wasi"))] +pub trait AsSocketlike: AsFd { + /// Borrows the reference. + fn as_socketlike(&self) -> BorrowedSocketlike<'_>; + + /// Return a borrowing view of a resource which dereferences to a `&Target`. + /// + /// Note that [`Read`] or [`Write`] require `&mut Target`, but in some cases, + /// such as [`TcpStream`], `Read` and `Write` are implemented for `&Target` in + /// addition to `Target`, and you can get a `&mut &Target` by doing `&*` on + /// the resuting view, like this: + /// + /// ```rust,ignore + /// let v = s.as_socketlike_view::(); + /// (&*v).read(&mut buf).unwrap(); + /// ``` + /// + /// [`TcpStream`]: std::net::TcpStream + /// [`Read`]: std::io::Read + /// [`Write`]: std::io::Write + fn as_socketlike_view(&self) -> SocketlikeView<'_, Target>; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsSocketlike for T { + #[inline] + fn as_socketlike(&self) -> BorrowedSocketlike<'_> { + self.as_fd() + } + + #[inline] + fn as_socketlike_view(&self) -> SocketlikeView<'_, Target> { + SocketlikeView::new(self) + } +} + +/// A portable trait to borrow a reference from an underlying socketlike +/// object. +/// +/// This is a portability abstraction over Unix-like `AsFd` and Windows' +/// [`AsSocket`]. It also provides the `as_socketlike_view` convenience +/// function providing typed views. +#[cfg(windows)] +pub trait AsSocketlike: AsSocket { + /// Borrows the reference. + fn as_socketlike(&self) -> BorrowedSocketlike; + + /// Return a borrowing view of a resource which dereferences to a `&Target`. + /// + /// Note that [`Read`] or [`Write`] require `&mut Target`, but in some cases, + /// such as [`TcpStream`], `Read` and `Write` are implemented for `&Target` in + /// addition to `Target`, and you can get a `&mut &Target` by doing `&*` on + /// the resuting view, like this: + /// + /// ```rust,ignore + /// let v = s.as_socketlike_view::(); + /// (&*v).read(&mut buf).unwrap(); + /// ``` + /// + /// [`TcpStream`]: std::net::TcpStream + fn as_socketlike_view(&self) -> SocketlikeView<'_, Target>; +} + +#[cfg(windows)] +impl AsSocketlike for T { + #[inline] + fn as_socketlike(&self) -> BorrowedSocketlike<'_> { + self.as_socket() + } + + #[inline] + fn as_socketlike_view(&self) -> SocketlikeView<'_, Target> { + SocketlikeView::new(self) + } +} + +/// A portable trait to express the ability to consume an object and acquire +/// ownership of its filelike object. +/// +/// This is a portability abstraction over Unix-like [`Into`] and Windows' +/// `Into`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait IntoFilelike: Into { + /// Consumes this object, returning the underlying filelike object. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{IntoFilelike, OwnedFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_filelike: OwnedFilelike = f.into_filelike(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn into_filelike(self) -> OwnedFilelike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl> IntoFilelike for T { + #[inline] + fn into_filelike(self) -> OwnedFilelike { + self.into() + } +} + +/// A portable trait to express the ability to consume an object and acquire +/// ownership of its filelike object. +/// +/// This is a portability abstraction over Unix-like `Into` and Windows' +/// [`Into`]. +#[cfg(windows)] +pub trait IntoFilelike: Into { + /// Consumes this object, returning the underlying filelike object. + fn into_filelike(self) -> OwnedFilelike; +} + +#[cfg(windows)] +impl> IntoFilelike for T { + #[inline] + fn into_filelike(self) -> OwnedFilelike { + self.into() + } +} + +/// A portable trait to express the ability to consume an object and acquire +/// ownership of its socketlike object. +/// +/// This is a portability abstraction over Unix-like [`Into`] and Windows' +/// `Into`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait IntoSocketlike: Into { + /// Consumes this object, returning the underlying socketlike object. + fn into_socketlike(self) -> OwnedSocketlike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl> IntoSocketlike for T { + #[inline] + fn into_socketlike(self) -> OwnedSocketlike { + self.into() + } +} + +/// A portable trait to express the ability to consume an object and acquire +/// ownership of its socketlike object. +/// +/// This is a portability abstraction over Unix-like `Into` and Windows' +/// [`Into`]. +#[cfg(windows)] +pub trait IntoSocketlike: Into { + /// Consumes this object, returning the underlying socketlike object. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{IntoFilelike, OwnedFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_filelike: OwnedFilelike = f.into_filelike(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn into_socketlike(self) -> OwnedSocketlike; +} + +#[cfg(windows)] +impl> IntoSocketlike for T { + #[inline] + fn into_socketlike(self) -> OwnedSocketlike { + self.into() + } +} + +/// A portable trait to express the ability to construct an object from a +/// filelike object. +/// +/// This is a portability abstraction over Unix-like [`From`] and Windows' +/// `From`. It also provides the `from_into_filelike` convenience +/// function providing simplified from+into conversions. +#[cfg(any(unix, target_os = "wasi"))] +pub trait FromFilelike: From { + /// Constructs a new instance of `Self` from the given filelike object. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFilelike, IntoFilelike, OwnedFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_filelike: OwnedFilelike = f.into_filelike(); + /// let f = File::from_filelike(owned_filelike); + /// # Ok::<(), io::Error>(()) + /// ``` + fn from_filelike(owned: OwnedFilelike) -> Self; + + /// Constructs a new instance of `Self` from the given filelike object + /// converted from `into_owned`. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFilelike, IntoFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let f = File::from_into_filelike(f); + /// # Ok::<(), io::Error>(()) + /// ``` + fn from_into_filelike(owned: Owned) -> Self; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl> FromFilelike for T { + #[inline] + fn from_filelike(owned: OwnedFilelike) -> Self { + Self::from(owned) + } + + #[inline] + fn from_into_filelike(owned: Owned) -> Self { + Self::from_filelike(owned.into_filelike()) + } +} + +/// A portable trait to express the ability to construct an object from a +/// filelike object. +/// +/// This is a portability abstraction over Unix-like `From` and Windows' +/// [`From`]. It also provides the `from_into_filelike` convenience +/// function providing simplified from+into conversions. +#[cfg(windows)] +pub trait FromFilelike: From { + /// Constructs a new instance of `Self` from the given filelike object. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFilelike, IntoFilelike, OwnedFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_filelike: OwnedFilelike = f.into_filelike(); + /// let f = File::from_filelike(owned_filelike); + /// # Ok::<(), io::Error>(()) + /// ``` + fn from_filelike(owned: OwnedFilelike) -> Self; + + /// Constructs a new instance of `Self` from the given filelike object + /// converted from `into_owned`. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFilelike, IntoFilelike}; + /// + /// let f = File::open("foo.txt")?; + /// let f = File::from_into_filelike(f); + /// # Ok::<(), io::Error>(()) + /// ``` + fn from_into_filelike(owned: Owned) -> Self; +} + +#[cfg(windows)] +impl> FromFilelike for T { + #[inline] + fn from_filelike(owned: OwnedFilelike) -> Self { + Self::from(owned) + } + + #[inline] + fn from_into_filelike(owned: Owned) -> Self { + Self::from_filelike(owned.into_filelike()) + } +} + +/// A portable trait to express the ability to construct an object from a +/// socketlike object. +/// +/// This is a portability abstraction over Unix-like [`From`] and Windows' +/// `From It also provides the `from_into_socketlike` convenience +/// function providing simplified from+into conversions. +#[cfg(any(unix, target_os = "wasi"))] +pub trait FromSocketlike: From { + /// Constructs a new instance of `Self` from the given socketlike object. + fn from_socketlike(owned: OwnedSocketlike) -> Self; + + /// Constructs a new instance of `Self` from the given socketlike object + /// converted from `into_owned`. + fn from_into_socketlike(owned: Owned) -> Self; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl> FromSocketlike for T { + #[inline] + fn from_socketlike(owned: OwnedSocketlike) -> Self { + Self::from(owned) + } + + #[inline] + fn from_into_socketlike(owned: Owned) -> Self { + Self::from_socketlike(owned.into_socketlike()) + } +} + +/// A portable trait to express the ability to construct an object from a +/// socketlike object. +/// +/// This is a portability abstraction over Unix-like `From` and Windows' +/// [`From`]. It also provides the `from_into_socketlike` convenience +/// function providing simplified from+into conversions. +#[cfg(windows)] +pub trait FromSocketlike: From { + /// Constructs a new instance of `Self` from the given socketlike object. + fn from_socketlike(owned: OwnedSocketlike) -> Self; + + /// Constructs a new instance of `Self` from the given socketlike object + /// converted from `into_owned`. + fn from_into_socketlike(owned: Owned) -> Self; +} + +#[cfg(windows)] +impl> FromSocketlike for T { + #[inline] + fn from_socketlike(owned: OwnedSocketlike) -> Self { + Self::from(owned) + } + + #[inline] + fn from_into_socketlike(owned: Owned) -> Self { + Self::from_socketlike(owned.into_socketlike()) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/raw.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/raw.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/raw.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/raw.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,253 @@ +//! Portability abstractions over `Raw*`. +//! +//! On Unix, "everything is a file descriptor". On Windows, file/pipe/process +//! handles are distinct from socket descriptors. This file provides a minimal +//! layer of portability over this difference. + +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +#[cfg(windows)] +use std::os::windows::io::{ + AsRawHandle, AsRawSocket, FromRawHandle, FromRawSocket, IntoRawHandle, IntoRawSocket, + RawHandle, RawSocket, +}; + +/// A raw filelike object. +/// +/// This is a portability abstraction over Unix-like [`RawFd`] and +/// Windows' `RawHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub type RawFilelike = RawFd; + +/// A raw filelike object. +/// +/// This is a portability abstraction over Unix-like `RawFd` and +/// Windows' [`RawHandle`]. +#[cfg(windows)] +pub type RawFilelike = RawHandle; + +/// A raw socketlike object. +/// +/// This is a portability abstraction over Unix-like [`RawFd`] and +/// Windows' `RawSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub type RawSocketlike = RawFd; + +/// A raw socketlike object. +/// +/// This is a portability abstraction over Unix-like `RawFd` and +/// Windows' [`RawSocket`]. +#[cfg(windows)] +pub type RawSocketlike = RawSocket; + +/// A portable trait to obtain the raw value of an underlying filelike object. +/// +/// This is a portability abstraction over Unix-like [`AsRawFd`] and Windows' +/// `AsRawHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait AsRawFilelike: AsRawFd { + /// Returns the raw value. + fn as_raw_filelike(&self) -> RawFilelike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsRawFilelike for T { + #[inline] + fn as_raw_filelike(&self) -> RawFilelike { + self.as_raw_fd() + } +} + +/// This is a portability abstraction over Unix-like `AsRawFd` and Windows' +/// [`AsRawHandle`]. +#[cfg(windows)] +pub trait AsRawFilelike: AsRawHandle { + /// Returns the raw value. + fn as_raw_filelike(&self) -> RawFilelike; +} + +#[cfg(windows)] +impl AsRawFilelike for T { + #[inline] + fn as_raw_filelike(&self) -> RawFilelike { + self.as_raw_handle() + } +} + +/// This is a portability abstraction over Unix-like [`AsRawFd`] and Windows' +/// `AsRawSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait AsRawSocketlike: AsRawFd { + /// Returns the raw value. + fn as_raw_socketlike(&self) -> RawSocketlike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsRawSocketlike for T { + #[inline] + fn as_raw_socketlike(&self) -> RawSocketlike { + self.as_raw_fd() + } +} + +/// This is a portability abstraction over Unix-like `AsRawFd` and Windows' +/// [`AsRawSocket`]. +#[cfg(windows)] +pub trait AsRawSocketlike: AsRawSocket { + /// Returns the raw value. + fn as_raw_socketlike(&self) -> RawSocketlike; +} + +#[cfg(windows)] +impl AsRawSocketlike for T { + #[inline] + fn as_raw_socketlike(&self) -> RawSocketlike { + self.as_raw_socket() + } +} + +/// This is a portability abstraction over Unix-like [`IntoRawFd`] and Windows' +/// `IntoRawHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait IntoRawFilelike: IntoRawFd { + /// Returns the raw value. + fn into_raw_filelike(self) -> RawFilelike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoRawFilelike for T { + #[inline] + fn into_raw_filelike(self) -> RawFilelike { + self.into_raw_fd() + } +} + +/// This is a portability abstraction over Unix-like `IntoRawFd` and Windows' +/// [`IntoRawHandle`]. +#[cfg(windows)] +pub trait IntoRawFilelike: IntoRawHandle { + /// Returns the raw value. + fn into_raw_filelike(self) -> RawFilelike; +} + +#[cfg(windows)] +impl IntoRawFilelike for T { + #[inline] + fn into_raw_filelike(self) -> RawFilelike { + self.into_raw_handle() + } +} + +/// This is a portability abstraction over Unix-like [`IntoRawFd`] and Windows' +/// `IntoRawSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait IntoRawSocketlike: IntoRawFd { + /// Returns the raw value. + fn into_raw_socketlike(self) -> RawSocketlike; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoRawSocketlike for T { + #[inline] + fn into_raw_socketlike(self) -> RawSocketlike { + self.into_raw_fd() + } +} + +/// This is a portability abstraction over Unix-like `IntoRawFd` and Windows' +/// [`IntoRawSocket`]. +#[cfg(windows)] +pub trait IntoRawSocketlike: IntoRawSocket { + /// Returns the raw value. + fn into_raw_socketlike(self) -> RawSocketlike; +} + +#[cfg(windows)] +impl IntoRawSocketlike for T { + #[inline] + fn into_raw_socketlike(self) -> RawSocketlike { + self.into_raw_socket() + } +} + +/// This is a portability abstraction over Unix-like [`FromRawFd`] and Windows' +/// `FromRawHandle`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait FromRawFilelike: FromRawFd { + /// Constructs `Self` from the raw value. + /// + /// # Safety + /// + /// This is `unsafe` for the same reason as [`from_raw_fd`] and + /// [`from_raw_handle`]. + /// + /// [`from_raw_fd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html#tymethod.from_raw_fd + /// [`from_raw_handle`]: https://doc.rust-lang.org/stable/std/os/windows/io/trait.FromRawHandle.html#tymethod.from_raw_handle + unsafe fn from_raw_filelike(raw: RawFilelike) -> Self; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromRawFilelike for T { + #[inline] + unsafe fn from_raw_filelike(raw: RawFilelike) -> Self { + Self::from_raw_fd(raw) + } +} + +/// This is a portability abstraction over Unix-like `FromRawFd` and Windows' +/// [`FromRawHandle`]. +#[cfg(windows)] +pub trait FromRawFilelike: FromRawHandle { + /// Constructs `Self` from the raw value. + unsafe fn from_raw_filelike(raw: RawFilelike) -> Self; +} + +#[cfg(windows)] +impl FromRawFilelike for T { + #[inline] + unsafe fn from_raw_filelike(raw: RawFilelike) -> Self { + Self::from_raw_handle(raw) + } +} + +/// This is a portability abstraction over Unix-like [`FromRawFd`] and Windows' +/// `FromRawSocket`. +#[cfg(any(unix, target_os = "wasi"))] +pub trait FromRawSocketlike: FromRawFd { + /// Constructs `Self` from the raw value. + /// + /// # Safety + /// + /// This is `unsafe` for the same reason as [`from_raw_fd`] and + /// [`from_raw_socket`]. + /// + /// [`from_raw_fd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html#tymethod.from_raw_fd + /// [`from_raw_socket`]: https://doc.rust-lang.org/stable/std/os/windows/io/trait.FromRawSocket.html#tymethod.from_raw_socket + unsafe fn from_raw_socketlike(raw: RawSocketlike) -> Self; +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromRawSocketlike for T { + #[inline] + unsafe fn from_raw_socketlike(raw: RawSocketlike) -> Self { + Self::from_raw_fd(raw) + } +} + +/// This is a portability abstraction over Unix-like `FromRawFd` and Windows' +/// [`FromRawSocket`]. +#[cfg(windows)] +pub trait FromRawSocketlike: FromRawSocket { + /// Constructs `Self` from the raw value. + unsafe fn from_raw_socketlike(raw: RawSocketlike) -> Self; +} + +#[cfg(windows)] +impl FromRawSocketlike for T { + #[inline] + unsafe fn from_raw_socketlike(raw: RawSocketlike) -> Self { + Self::from_raw_socket(raw) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/traits.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/traits.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/traits.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/traits.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,290 @@ +#[cfg(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +use crate::BorrowedFd; +#[cfg(any(unix, target_os = "wasi"))] +use crate::OwnedFd; +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +use crate::{BorrowedHandle, BorrowedSocket}; +#[cfg(windows)] +use crate::{OwnedHandle, OwnedSocket}; + +/// 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(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +pub trait AsFd { + /// Borrows the file descriptor. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{AsFd, BorrowedFd}; + /// + /// let mut f = File::open("foo.txt")?; + /// let borrowed_fd: BorrowedFd<'_> = f.as_fd(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn as_fd(&self) -> BorrowedFd<'_>; +} + +/// A trait to borrow the handle from an underlying object. +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +pub trait AsHandle { + /// Borrows the handle. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{AsHandle, BorrowedHandle}; + /// + /// let mut f = File::open("foo.txt")?; + /// let borrowed_handle: BorrowedHandle<'_> = f.as_handle(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn as_handle(&self) -> BorrowedHandle<'_>; +} + +/// A trait to borrow the socket from an underlying object. +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +pub trait AsSocket { + /// Borrows the socket. + fn as_socket(&self) -> BorrowedSocket<'_>; +} + +/// A trait to express the ability to consume an object and acquire ownership +/// of its file descriptor. +#[cfg(any(unix, target_os = "wasi"))] +#[deprecated( + since = "1.0.0", + note = "`IntoFd` is replaced by `From<...> for OwnedFd` or `Into`" +)] +pub trait IntoFd { + /// Consumes this object, returning the underlying file descriptor. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{IntoFd, OwnedFd}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_fd: OwnedFd = f.into_fd(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn into_fd(self) -> OwnedFd; +} + +/// A trait to express the ability to consume an object and acquire ownership +/// of its handle. +#[cfg(windows)] +#[deprecated( + since = "1.0.0", + note = "`IntoHandle` is replaced by `From<...> for OwnedHandle` or `Into`" +)] +pub trait IntoHandle { + /// Consumes this object, returning the underlying handle. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{IntoHandle, OwnedHandle}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_handle: OwnedHandle = f.into_handle(); + /// # Ok::<(), io::Error>(()) + /// ``` + fn into_handle(self) -> OwnedHandle; +} + +/// A trait to express the ability to consume an object and acquire ownership +/// of its socket. +#[cfg(windows)] +#[deprecated( + since = "1.0.0", + note = "`IntoSocket` is replaced by `From<...> for OwnedSocket` or `Into`" +)] +pub trait IntoSocket { + /// Consumes this object, returning the underlying socket. + fn into_socket(self) -> OwnedSocket; +} + +/// A trait to express the ability to construct an object from a file +/// descriptor. +#[cfg(any(unix, target_os = "wasi"))] +pub trait FromFd { + /// Constructs a new instance of `Self` from the given file descriptor. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFd, IntoFd, OwnedFd}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_fd: OwnedFd = f.into_fd(); + /// let f = File::from_fd(owned_fd); + /// # Ok::<(), io::Error>(()) + /// ``` + #[deprecated( + since = "1.0.0", + note = "`FromFd::from_fd` is replaced by `From::from`" + )] + fn from_fd(owned: OwnedFd) -> Self; + + /// Constructs a new instance of `Self` from the given file descriptor + /// converted from `into_owned`. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromFd, IntoFd}; + /// + /// let f = File::open("foo.txt")?; + /// let f = File::from_into_fd(f); + /// # Ok::<(), io::Error>(()) + /// ``` + #[inline] + fn from_into_fd>(into_owned: Owned) -> Self + where + Self: Sized + From, + { + Self::from(into_owned.into()) + } +} + +/// A trait to express the ability to construct an object from a handle. +#[cfg(windows)] +pub trait FromHandle { + /// Constructs a new instance of `Self` from the given handle. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromHandle, IntoHandle, OwnedHandle}; + /// + /// let f = File::open("foo.txt")?; + /// let owned_handle: OwnedHandle = f.into_handle(); + /// let f = File::from_handle(owned_handle); + /// # Ok::<(), io::Error>(()) + /// ``` + #[deprecated( + since = "1.0.0", + note = "`FromHandle::from_handle` is replaced by `From::from`" + )] + fn from_handle(owned: OwnedHandle) -> Self; + + /// Constructs a new instance of `Self` from the given handle converted + /// from `into_owned`. + /// + /// # Example + /// + /// ```rust,no_run + /// use std::fs::File; + /// # use std::io; + /// use io_lifetimes::{FromHandle, IntoHandle}; + /// + /// let f = File::open("foo.txt")?; + /// let f = File::from_into_handle(f); + /// # Ok::<(), io::Error>(()) + /// ``` + #[inline] + fn from_into_handle>(into_owned: Owned) -> Self + where + Self: Sized + From, + { + Self::from(into_owned.into()) + } +} + +/// A trait to express the ability to construct an object from a socket. +#[cfg(windows)] +pub trait FromSocket { + /// Constructs a new instance of `Self` from the given socket. + #[deprecated( + since = "1.0.0", + note = "`FromSocket::from_socket` is replaced by `From::from`" + )] + fn from_socket(owned: OwnedSocket) -> Self; + + /// Constructs a new instance of `Self` from the given socket converted + /// from `into_owned`. + #[inline] + fn from_into_socket>(into_owned: Owned) -> Self + where + Self: Sized + From, + { + Self::from(into_owned.into()) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for &T { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + T::as_fd(self) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(any(unix, target_os = "wasi"))] +impl AsFd for &mut T { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + T::as_fd(self) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +impl AsHandle for &T { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + T::as_handle(self) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +impl AsHandle for &mut T { + #[inline] + fn as_handle(&self) -> BorrowedHandle<'_> { + T::as_handle(self) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +impl AsSocket for &T { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + T::as_socket(self) + } +} + +#[cfg(not(io_safety_is_in_std))] +#[cfg(windows)] +impl AsSocket for &mut T { + #[inline] + fn as_socket(&self) -> BorrowedSocket<'_> { + T::as_socket(self) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,860 @@ +use std::fmt; +use std::marker::PhantomData; +use std::mem::forget; +#[cfg(unix)] +use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +#[cfg(target_os = "wasi")] +use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +#[cfg(windows)] +use std::{ + convert::TryFrom, + os::windows::io::{ + AsRawHandle, AsRawSocket, FromRawHandle, FromRawSocket, IntoRawHandle, IntoRawSocket, + RawHandle, RawSocket, + }, +}; +#[cfg(all(windows, feature = "close"))] +use { + windows_sys::Win32::Foundation::{ + CloseHandle, DuplicateHandle, SetHandleInformation, BOOL, DUPLICATE_HANDLE_OPTIONS, + DUPLICATE_SAME_ACCESS, HANDLE, HANDLE_FLAG_INHERIT, INVALID_HANDLE_VALUE, + }, + windows_sys::Win32::Networking::WinSock::{ + closesocket, WSADuplicateSocketW, WSAGetLastError, WSASocketW, INVALID_SOCKET, SOCKET, + SOCKET_ERROR, WSAEINVAL, WSAEPROTOTYPE, WSAPROTOCOL_INFOW, WSA_FLAG_NO_HANDLE_INHERIT, + WSA_FLAG_OVERLAPPED, + }, + windows_sys::Win32::System::Threading::{GetCurrentProcess, GetCurrentProcessId}, +}; + +#[cfg(all(windows, not(feature = "close")))] +type HANDLE = isize; +#[cfg(all(windows, not(feature = "close")))] +const INVALID_HANDLE_VALUE: HANDLE = !0 as _; +#[cfg(all(windows, not(feature = "close")))] +const INVALID_SOCKET: usize = !0 as _; + +/// A borrowed file descriptor. +/// +/// This has a lifetime parameter to tie it to the lifetime of something that +/// owns 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's `.to_owned()` implementation returns another `BorrowedFd` +/// rather than an `OwnedFd`. It just makes a trivial copy of the raw file +/// descriptor, which is then borrowed under the same lifetime. +#[cfg(any(unix, target_os = "wasi"))] +#[derive(Copy, Clone)] +#[repr(transparent)] +pub struct BorrowedFd<'fd> { + fd: RawFd, + _phantom: PhantomData<&'fd OwnedFd>, +} + +/// A borrowed handle. +/// +/// This has a lifetime parameter to tie it to the lifetime of something that +/// owns the handle. +/// +/// This uses `repr(transparent)` and has the representation of a host handle, +/// so it can be used in FFI in places where a handle is passed as an argument, +/// it is not captured or consumed, and it is never null. +/// +/// Note that it *may* have the value `-1`, which in `BorrowedHandle` always +/// represents a valid handle value, such as [the current process handle], and +/// not `INVALID_HANDLE_VALUE`, despite the two having the same value. See +/// [here] for the full story. +/// +/// This type's `.to_owned()` implementation returns another `BorrowedHandle` +/// rather than an `OwnedHandle`. It just makes a trivial copy of the raw +/// handle, which is then borrowed under the same lifetime. +/// +/// [here]: https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443 +/// [the current process handle]: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess#remarks +#[cfg(windows)] +#[derive(Copy, Clone)] +#[repr(transparent)] +pub struct BorrowedHandle<'handle> { + handle: RawHandle, + _phantom: PhantomData<&'handle OwnedHandle>, +} + +/// 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. +#[cfg(windows)] +#[derive(Copy, Clone)] +#[repr(transparent)] +pub struct BorrowedSocket<'socket> { + socket: RawSocket, + _phantom: PhantomData<&'socket OwnedSocket>, +} + +/// An owned file descriptor. +/// +/// This closes the file descriptor on drop. +/// +/// 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`. +#[cfg(any(unix, target_os = "wasi"))] +#[repr(transparent)] +pub struct OwnedFd { + fd: RawFd, +} + +#[cfg(any(unix, target_os = "wasi"))] +impl OwnedFd { + /// Creates a new `OwnedFd` instance that shares the same underlying file + /// description as the existing `OwnedFd` instance. + pub fn try_clone(&self) -> std::io::Result { + crate::AsFd::as_fd(self).try_clone_to_owned() + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl BorrowedFd<'_> { + /// Creates a new `OwnedFd` instance that shares the same underlying file + /// description as the existing `BorrowedFd` instance. + pub fn try_clone_to_owned(&self) -> std::io::Result { + #[cfg(feature = "close")] + { + #[cfg(unix)] + { + // 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 cmd = libc::F_DUPFD_CLOEXEC; + + // 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 cmd = libc::F_DUPFD; + + let fd = match unsafe { libc::fcntl(self.as_raw_fd(), cmd, 0) } { + -1 => return Err(std::io::Error::last_os_error()), + fd => fd, + }; + + Ok(unsafe { OwnedFd::from_raw_fd(fd) }) + } + + #[cfg(target_os = "wasi")] + { + unreachable!("try_clone is not yet suppported on wasi"); + } + } + + // If the `close` feature is disabled, we expect users to avoid cloning + // `OwnedFd` instances, so that we don't have to call `fcntl`. + #[cfg(not(feature = "close"))] + { + unreachable!("try_clone called without the \"close\" feature in io-lifetimes"); + } + } +} + +/// An owned handle. +/// +/// This closes the handle on drop. +/// +/// Note that it *may* have the value `-1`, which in `OwnedHandle` always +/// represents a valid handle value, such as [the current process handle], and +/// not `INVALID_HANDLE_VALUE`, despite the two having the same value. See +/// [here] for the full story. +/// +/// And, it *may* have the value `NULL` (0), which can occur when consoles are +/// detached from processes, or when `windows_subsystem` is used. +/// +/// `OwnedHandle` uses [`CloseHandle`] to close its handle on drop. As such, +/// it must not be used with handles to open registry keys which need to be +/// closed with [`RegCloseKey`] instead. +/// +/// [`CloseHandle`]: https://docs.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-closehandle +/// [`RegCloseKey`]: https://docs.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regclosekey +/// +/// [here]: https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443 +/// [the current process handle]: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess#remarks +#[cfg(windows)] +#[repr(transparent)] +pub struct OwnedHandle { + handle: RawHandle, +} + +#[cfg(windows)] +impl OwnedHandle { + /// Creates a new `OwnedHandle` instance that shares the same underlying + /// object as the existing `OwnedHandle` instance. + pub fn try_clone(&self) -> std::io::Result { + crate::AsHandle::as_handle(self).try_clone_to_owned() + } +} + +#[cfg(windows)] +impl BorrowedHandle<'_> { + /// Creates a new `OwnedHandle` instance that shares the same underlying + /// object as the existing `BorrowedHandle` instance. + pub fn try_clone_to_owned(&self) -> std::io::Result { + #[cfg(feature = "close")] + { + self.duplicate(0, false, DUPLICATE_SAME_ACCESS) + } + + // If the `close` feature is disabled, we expect users to avoid cloning + // `OwnedHandle` instances, so that we don't have to call `fcntl`. + #[cfg(not(feature = "close"))] + { + unreachable!("try_clone called without the \"close\" feature in io-lifetimes"); + } + } + + #[cfg(feature = "close")] + pub(crate) fn duplicate( + &self, + access: u32, + inherit: bool, + options: DUPLICATE_HANDLE_OPTIONS, + ) -> std::io::Result { + let mut ret = 0 as HANDLE; + match unsafe { + let cur_proc = GetCurrentProcess(); + DuplicateHandle( + cur_proc, + self.as_raw_handle() as HANDLE, + cur_proc, + &mut ret, + access, + inherit as BOOL, + options, + ) + } { + 0 => return Err(std::io::Error::last_os_error()), + _ => (), + } + unsafe { Ok(OwnedHandle::from_raw_handle(ret as RawHandle)) } + } +} + +/// 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`]. +#[cfg(windows)] +#[repr(transparent)] +pub struct OwnedSocket { + socket: RawSocket, +} + +#[cfg(windows)] +impl OwnedSocket { + /// Creates a new `OwnedSocket` instance that shares the same underlying + /// object as the existing `OwnedSocket` instance. + pub fn try_clone(&self) -> std::io::Result { + crate::AsSocket::as_socket(self).try_clone_to_owned() + } + + #[cfg(feature = "close")] + #[cfg(not(target_vendor = "uwp"))] + fn set_no_inherit(&self) -> std::io::Result<()> { + match unsafe { + SetHandleInformation(self.as_raw_socket() as HANDLE, HANDLE_FLAG_INHERIT, 0) + } { + 0 => return Err(std::io::Error::last_os_error()), + _ => Ok(()), + } + } + + #[cfg(feature = "close")] + #[cfg(target_vendor = "uwp")] + fn set_no_inherit(&self) -> std::io::Result<()> { + Err(io::Error::new_const( + std::io::ErrorKind::Unsupported, + &"Unavailable on UWP", + )) + } +} + +#[cfg(windows)] +impl BorrowedSocket<'_> { + /// Creates a new `OwnedSocket` instance that shares the same underlying + /// object as the existing `BorrowedSocket` instance. + pub fn try_clone_to_owned(&self) -> std::io::Result { + #[cfg(feature = "close")] + { + let mut info = unsafe { std::mem::zeroed::() }; + let result = unsafe { + WSADuplicateSocketW(self.as_raw_socket() as _, GetCurrentProcessId(), &mut info) + }; + match result { + SOCKET_ERROR => return Err(std::io::Error::last_os_error()), + 0 => (), + _ => panic!(), + } + let socket = unsafe { + WSASocketW( + info.iAddressFamily, + info.iSocketType, + info.iProtocol, + &mut info, + 0, + WSA_FLAG_OVERLAPPED | WSA_FLAG_NO_HANDLE_INHERIT, + ) + }; + + if socket != INVALID_SOCKET { + unsafe { Ok(OwnedSocket::from_raw_socket(socket as _)) } + } else { + let error = unsafe { WSAGetLastError() }; + + if error != WSAEPROTOTYPE && error != WSAEINVAL { + return Err(std::io::Error::from_raw_os_error(error)); + } + + let socket = unsafe { + WSASocketW( + info.iAddressFamily, + info.iSocketType, + info.iProtocol, + &mut info, + 0, + WSA_FLAG_OVERLAPPED, + ) + }; + + if socket == INVALID_SOCKET { + return Err(std::io::Error::last_os_error()); + } + + unsafe { + let socket = OwnedSocket::from_raw_socket(socket as _); + socket.set_no_inherit()?; + Ok(socket) + } + } + } + + // If the `close` feature is disabled, we expect users to avoid cloning + // `OwnedSocket` instances, so that we don't have to call `fcntl`. + #[cfg(not(feature = "close"))] + { + unreachable!("try_clone called without the \"close\" feature in io-lifetimes"); + } + } +} + +/// FFI type for handles in return values or out parameters, where `INVALID_HANDLE_VALUE` is used +/// as a sentry value to indicate errors, such as in the return value of `CreateFileW`. This uses +/// `repr(transparent)` and has the representation of a host handle, so that it can be used in such +/// FFI declarations. +/// +/// The only thing you can usefully do with a `HandleOrInvalid` is to convert it into an +/// `OwnedHandle` using its [`TryFrom`] implementation; this conversion takes care of the check for +/// `INVALID_HANDLE_VALUE`. This ensures that such FFI calls cannot start using the handle without +/// checking for `INVALID_HANDLE_VALUE` first. +/// +/// This type may hold any handle value that [`OwnedHandle`] may hold, except that when it holds +/// `-1`, that value is interpreted to mean `INVALID_HANDLE_VALUE`. +/// +/// If holds a handle other than `INVALID_HANDLE_VALUE`, it will close the handle on drop. +#[cfg(windows)] +#[repr(transparent)] +#[derive(Debug)] +pub struct HandleOrInvalid(RawHandle); + +/// FFI type for handles in return values or out parameters, where `NULL` is used +/// as a sentry value to indicate errors, such as in the return value of `CreateThread`. This uses +/// `repr(transparent)` and has the representation of a host handle, so that it can be used in such +/// FFI declarations. +/// +/// The only thing you can usefully do with a `HandleOrNull` is to convert it into an +/// `OwnedHandle` using its [`TryFrom`] implementation; this conversion takes care of the check for +/// `NULL`. This ensures that such FFI calls cannot start using the handle without +/// checking for `NULL` first. +/// +/// This type may hold any handle value that [`OwnedHandle`] may hold. As with `OwnedHandle`, when +/// it holds `-1`, that value is interpreted as a valid handle value, such as +/// [the current process handle], and not `INVALID_HANDLE_VALUE`. +/// +/// If this holds a non-null handle, it will close the handle on drop. +/// +/// [the current process handle]: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess#remarks +#[cfg(windows)] +#[repr(transparent)] +#[derive(Debug)] +pub struct HandleOrNull(RawHandle); + +// The Windows [`HANDLE`] type may be transferred across and shared between +// thread boundaries (despite containing a `*mut void`, which in general isn't +// `Send` or `Sync`). +// +// [`HANDLE`]: std::os::windows::raw::HANDLE +#[cfg(windows)] +unsafe impl Send for OwnedHandle {} +#[cfg(windows)] +unsafe impl Send for HandleOrInvalid {} +#[cfg(windows)] +unsafe impl Send for HandleOrNull {} +#[cfg(windows)] +unsafe impl Send for BorrowedHandle<'_> {} +#[cfg(windows)] +unsafe impl Sync for OwnedHandle {} +#[cfg(windows)] +unsafe impl Sync for HandleOrInvalid {} +#[cfg(windows)] +unsafe impl Sync for HandleOrNull {} +#[cfg(windows)] +unsafe impl Sync for BorrowedHandle<'_> {} + +#[cfg(any(unix, target_os = "wasi"))] +impl BorrowedFd<'_> { + /// Return a `BorrowedFd` holding the given raw file descriptor. + /// + /// # Safety + /// + /// The resource pointed to by `raw` must remain open for the duration of + /// the returned `BorrowedFd`, and it must not have the value `-1`. + #[inline] + pub const unsafe fn borrow_raw(fd: RawFd) -> Self { + #[cfg(panic_in_const_fn)] + debug_assert!(fd != -1_i32 as RawFd); + + Self { + fd, + _phantom: PhantomData, + } + } +} + +#[cfg(windows)] +impl BorrowedHandle<'_> { + /// Return a `BorrowedHandle` holding the given raw handle. + /// + /// # Safety + /// + /// The resource pointed to by `handle` must be a valid open handle, it + /// must remain open for the duration of the returned `BorrowedHandle`. + /// + /// Note that it *may* have the value `INVALID_HANDLE_VALUE` (-1), which is + /// sometimes a valid handle value. See [here] for the full story. + /// + /// And, it *may* have the value `NULL` (0), which can occur when consoles are + /// detached from processes, or when `windows_subsystem` is used. + /// + /// [here]: https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443 + #[inline] + pub const unsafe fn borrow_raw(handle: RawHandle) -> Self { + Self { + handle, + _phantom: PhantomData, + } + } +} + +#[cfg(windows)] +impl BorrowedSocket<'_> { + /// Return 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] + pub const unsafe fn borrow_raw(socket: RawSocket) -> Self { + #[cfg(panic_in_const_fn)] + debug_assert!(socket != INVALID_SOCKET as RawSocket); + Self { + socket, + _phantom: PhantomData, + } + } +} + +#[cfg(windows)] +impl TryFrom for OwnedHandle { + type Error = InvalidHandleError; + + #[inline] + fn try_from(handle_or_invalid: HandleOrInvalid) -> Result { + let raw = handle_or_invalid.0; + if raw as HANDLE == INVALID_HANDLE_VALUE { + // Don't call `CloseHandle`; it'd be harmless, except that it could + // overwrite the `GetLastError` error. + forget(handle_or_invalid); + + Err(InvalidHandleError(())) + } else { + Ok(OwnedHandle { handle: raw }) + } + } +} + +#[cfg(windows)] +impl TryFrom for OwnedHandle { + type Error = NullHandleError; + + #[inline] + fn try_from(handle_or_null: HandleOrNull) -> Result { + let raw = handle_or_null.0; + if raw.is_null() { + // Don't call `CloseHandle`; it'd be harmless, except that it could + // overwrite the `GetLastError` error. + forget(handle_or_null); + + Err(NullHandleError(())) + } else { + Ok(OwnedHandle { handle: raw }) + } + } +} + +/// This is the error type used by [`HandleOrNull`] when attempting to convert +/// into a handle, to indicate that the value is null. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct NullHandleError(()); + +impl fmt::Display for NullHandleError { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + "A HandleOrNull could not be converted to a handle because it was null".fmt(fmt) + } +} + +impl std::error::Error for NullHandleError {} + +/// This is the error type used by [`HandleOrInvalid`] when attempting to +/// convert into a handle, to indicate that the value is +/// `INVALID_HANDLE_VALUE`. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct InvalidHandleError(()); + +impl fmt::Display for InvalidHandleError { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + "A HandleOrInvalid could not be converted to a handle because it was INVALID_HANDLE_VALUE" + .fmt(fmt) + } +} + +impl std::error::Error for InvalidHandleError {} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsRawFd for BorrowedFd<'_> { + #[inline] + fn as_raw_fd(&self) -> RawFd { + self.fd + } +} + +#[cfg(windows)] +impl AsRawHandle for BorrowedHandle<'_> { + #[inline] + fn as_raw_handle(&self) -> RawHandle { + self.handle + } +} + +#[cfg(windows)] +impl AsRawSocket for BorrowedSocket<'_> { + #[inline] + fn as_raw_socket(&self) -> RawSocket { + self.socket + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl AsRawFd for OwnedFd { + #[inline] + fn as_raw_fd(&self) -> RawFd { + self.fd + } +} + +#[cfg(windows)] +impl AsRawHandle for OwnedHandle { + #[inline] + fn as_raw_handle(&self) -> RawHandle { + self.handle + } +} + +#[cfg(windows)] +impl AsRawSocket for OwnedSocket { + #[inline] + fn as_raw_socket(&self) -> RawSocket { + self.socket + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl IntoRawFd for OwnedFd { + #[inline] + fn into_raw_fd(self) -> RawFd { + let fd = self.fd; + forget(self); + fd + } +} + +#[cfg(windows)] +impl IntoRawHandle for OwnedHandle { + #[inline] + fn into_raw_handle(self) -> RawHandle { + let handle = self.handle; + forget(self); + handle + } +} + +#[cfg(windows)] +impl IntoRawSocket for OwnedSocket { + #[inline] + fn into_raw_socket(self) -> RawSocket { + let socket = self.socket; + forget(self); + socket + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl FromRawFd for OwnedFd { + /// Constructs a new instance of `Self` from the given raw file descriptor. + /// + /// # Safety + /// + /// The resource pointed to by `raw` must be open and suitable for assuming + /// ownership. + #[inline] + unsafe fn from_raw_fd(fd: RawFd) -> Self { + debug_assert_ne!(fd, -1_i32 as RawFd); + Self { fd } + } +} + +#[cfg(windows)] +impl FromRawHandle for OwnedHandle { + #[inline] + unsafe fn from_raw_handle(handle: RawHandle) -> Self { + Self { handle } + } +} + +#[cfg(windows)] +impl FromRawSocket for OwnedSocket { + #[inline] + unsafe fn from_raw_socket(socket: RawSocket) -> Self { + debug_assert_ne!(socket, INVALID_SOCKET as RawSocket); + Self { socket } + } +} + +#[cfg(windows)] +impl HandleOrInvalid { + /// Constructs a new instance of `Self` from the given `RawHandle` returned + /// from a Windows API that uses `INVALID_HANDLE_VALUE` to indicate + /// failure, such as `CreateFileW`. + /// + /// Use `HandleOrNull` instead of `HandleOrInvalid` for APIs that + /// use null to indicate failure. + /// + /// # Safety + /// + /// The passed `handle` value must either satisfy the safety requirements + /// of [`FromRawHandle::from_raw_handle`], or be + /// `INVALID_HANDLE_VALUE` (-1). Note that not all Windows APIs use + /// `INVALID_HANDLE_VALUE` for errors; see [here] for the full story. + /// + /// [here]: https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443 + #[inline] + pub unsafe fn from_raw_handle(handle: RawHandle) -> Self { + Self(handle) + } +} + +#[cfg(windows)] +impl HandleOrNull { + /// Constructs a new instance of `Self` from the given `RawHandle` returned + /// from a Windows API that uses null to indicate failure, such as + /// `CreateThread`. + /// + /// Use `HandleOrInvalid` instead of `HandleOrNull` for APIs that + /// use `INVALID_HANDLE_VALUE` to indicate failure. + /// + /// # Safety + /// + /// The passed `handle` value must either satisfy the safety requirements + /// of [`FromRawHandle::from_raw_handle`], or be null. Note that not all + /// Windows APIs use null for errors; see [here] for the full story. + /// + /// [here]: https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443 + #[inline] + pub unsafe fn from_raw_handle(handle: RawHandle) -> Self { + Self(handle) + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl Drop for OwnedFd { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "close")] + unsafe { + let _ = libc::close(self.fd as std::os::raw::c_int); + } + + // If the `close` feature is disabled, we expect users to avoid letting + // `OwnedFd` instances drop, so that we don't have to call `close`. + #[cfg(not(feature = "close"))] + { + unreachable!("drop called without the \"close\" feature in io-lifetimes"); + } + } +} + +#[cfg(windows)] +impl Drop for OwnedHandle { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "close")] + unsafe { + let _ = CloseHandle(self.handle as HANDLE); + } + + // If the `close` feature is disabled, we expect users to avoid letting + // `OwnedHandle` instances drop, so that we don't have to call `close`. + #[cfg(not(feature = "close"))] + { + unreachable!("drop called without the \"close\" feature in io-lifetimes"); + } + } +} + +#[cfg(windows)] +impl Drop for HandleOrInvalid { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "close")] + unsafe { + let _ = CloseHandle(self.0 as HANDLE); + } + + // If the `close` feature is disabled, we expect users to avoid letting + // `HandleOrInvalid` instances drop, so that we don't have to call `close`. + #[cfg(not(feature = "close"))] + { + unreachable!("drop called without the \"close\" feature in io-lifetimes"); + } + } +} + +#[cfg(windows)] +impl Drop for HandleOrNull { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "close")] + unsafe { + let _ = CloseHandle(self.0 as HANDLE); + } + + // If the `close` feature is disabled, we expect users to avoid letting + // `HandleOrNull` instances drop, so that we don't have to call `close`. + #[cfg(not(feature = "close"))] + { + unreachable!("drop called without the \"close\" feature in io-lifetimes"); + } + } +} + +#[cfg(windows)] +impl Drop for OwnedSocket { + #[inline] + fn drop(&mut self) { + #[cfg(feature = "close")] + unsafe { + let _ = closesocket(self.socket as SOCKET); + } + + // If the `close` feature is disabled, we expect users to avoid letting + // `OwnedSocket` instances drop, so that we don't have to call `close`. + #[cfg(not(feature = "close"))] + { + unreachable!("drop called without the \"close\" feature in io-lifetimes"); + } + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl fmt::Debug for BorrowedFd<'_> { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("BorrowedFd").field("fd", &self.fd).finish() + } +} + +#[cfg(windows)] +impl fmt::Debug for BorrowedHandle<'_> { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("BorrowedHandle") + .field("handle", &self.handle) + .finish() + } +} + +#[cfg(windows)] +impl fmt::Debug for BorrowedSocket<'_> { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("BorrowedSocket") + .field("socket", &self.socket) + .finish() + } +} + +#[cfg(any(unix, target_os = "wasi"))] +impl fmt::Debug for OwnedFd { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OwnedFd").field("fd", &self.fd).finish() + } +} + +#[cfg(windows)] +impl fmt::Debug for OwnedHandle { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OwnedHandle") + .field("handle", &self.handle) + .finish() + } +} + +#[cfg(windows)] +impl fmt::Debug for OwnedSocket { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("OwnedSocket") + .field("socket", &self.socket) + .finish() + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/views.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/views.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/views.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/io-lifetimes/src/views.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,277 @@ +//! Typed views using temporary objects. +//! +//! This module defines the return types for [`AsFilelike::as_filelike_view`] +//! and [`AsSocketlike::as_socketlike_view`]. +//! +//! [`AsSocketlike::as_socketlike_view`]: crate::AsSocketlike::as_socketlike_view + +use crate::raw::{ + AsRawFilelike, AsRawSocketlike, FromRawFilelike, FromRawSocketlike, IntoRawFilelike, + IntoRawSocketlike, RawFilelike, RawSocketlike, +}; +#[cfg(any(unix, target_os = "wasi"))] +use crate::OwnedFd; +use crate::{ + AsFilelike, AsSocketlike, FromFilelike, FromSocketlike, IntoFilelike, IntoSocketlike, + OwnedFilelike, OwnedSocketlike, +}; +#[cfg(windows)] +use crate::{OwnedHandle, OwnedSocket}; +use std::fmt; +use std::marker::PhantomData; +use std::mem::ManuallyDrop; +use std::ops::Deref; + +/// Declare that a type is safe to use in a [`FilelikeView`]. +/// +/// # Safety +/// +/// Types implementing this trait declare that if they are constructed with +/// [`FromFilelike`] and consumed with [`IntoFilelike`], their `IntoFilelike` +/// will return the same `OwnedFd` value that was passed to their +/// `FromFilelike`. +pub unsafe trait FilelikeViewType: FromFilelike + IntoFilelike {} + +/// Declare that a type is safe to use in a [`SocketlikeView`]. +/// +/// # Safety +/// +/// Types implementing this trait declare that if they are constructed with +/// [`FromSocketlike`] and consumed with [`IntoSocketlike`], their +/// `IntoSocketlike` will return the same `OwnedFd` value that was passed to +/// their `FromSocketlike`. +pub unsafe trait SocketlikeViewType: FromSocketlike + IntoSocketlike {} + +/// A non-owning view of a resource which dereferences to a `&Target` or +/// `&mut Target`. These are returned by [`AsFilelike::as_filelike_view`]. +pub struct FilelikeView<'filelike, Target: FilelikeViewType> { + /// The value to dereference to. This is a `ManuallyDrop` so that we can + /// consume it in our `Drop` impl. + target: ManuallyDrop, + + /// `FilelikeViewType` implementors guarantee that their `Into` + /// returns the same fd as their `From` gave them. This field + /// allows us to verify this. + #[cfg(debug_assertions)] + orig: RawFilelike, + + /// This field exists because we don't otherwise explicitly use + /// `'filelike`. + _phantom: PhantomData<&'filelike OwnedFilelike>, +} + +/// A non-owning view of a resource which dereferences to a `&Target` or +/// `&mut Target`. These are returned by [`AsSocketlike::as_socketlike_view`]. +pub struct SocketlikeView<'socketlike, Target: SocketlikeViewType> { + /// The value to dereference to. This is a `ManuallyDrop` so that we can + /// consume it in our `Drop` impl. + target: ManuallyDrop, + + /// `SocketlikeViewType` implementors guarantee that their `Into` + /// returns the same fd as their `From` gave them. This field + /// allows us to verify this. + #[cfg(debug_assertions)] + orig: RawSocketlike, + + /// This field exists because we don't otherwise explicitly use + /// `'socketlike`. + _phantom: PhantomData<&'socketlike OwnedSocketlike>, +} + +impl FilelikeView<'_, Target> { + /// Construct a temporary `Target` and wrap it in a `FilelikeView` object. + #[inline] + pub(crate) fn new(filelike: &T) -> Self { + // Safety: The returned `FilelikeView` is scoped to the lifetime of + // `filelike`, which we've borrowed here, so the view won't outlive + // the object it's borrowed from. + unsafe { Self::view_raw(filelike.as_filelike().as_raw_filelike()) } + } + + /// Construct a temporary `Target` from raw and wrap it in a `FilelikeView` + /// object. + /// + /// # Safety + /// + /// `raw` must be a valid raw filelike referencing a resource that outlives + /// the resulting view. + #[inline] + pub unsafe fn view_raw(raw: RawFilelike) -> Self { + let owned = OwnedFilelike::from_raw_filelike(raw); + Self { + target: ManuallyDrop::new(Target::from_filelike(owned)), + #[cfg(debug_assertions)] + orig: raw, + _phantom: PhantomData, + } + } +} + +impl SocketlikeView<'_, Target> { + /// Construct a temporary `Target` and wrap it in a `SocketlikeView` + /// object. + #[inline] + pub(crate) fn new(socketlike: &T) -> Self { + // Safety: The returned `SocketlikeView` is scoped to the lifetime of + // `socketlike`, which we've borrowed here, so the view won't outlive + // the object it's borrowed from. + unsafe { Self::view_raw(socketlike.as_socketlike().as_raw_socketlike()) } + } + + /// Construct a temporary `Target` from raw and wrap it in a + /// `SocketlikeView` object. + /// + /// # Safety + /// + /// `raw` must be a valid raw socketlike referencing a resource that + /// outlives the resulting view. + #[inline] + pub unsafe fn view_raw(raw: RawSocketlike) -> Self { + let owned = OwnedSocketlike::from_raw_socketlike(raw); + Self { + target: ManuallyDrop::new(Target::from_socketlike(owned)), + #[cfg(debug_assertions)] + orig: raw, + _phantom: PhantomData, + } + } +} + +impl Deref for FilelikeView<'_, Target> { + type Target = Target; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.target + } +} + +impl Deref for SocketlikeView<'_, Target> { + type Target = Target; + + #[inline] + fn deref(&self) -> &Self::Target { + &self.target + } +} + +impl Drop for FilelikeView<'_, Target> { + #[inline] + fn drop(&mut self) { + // Use `Into*` to consume `self.target` without freeing its resource. + // + // Safety: Using `ManuallyDrop::take` requires us to ensure that + // `self.target` is not used again. We don't use it again here, and + // this is the `drop` function, so we know it's not used afterward. + let _raw = unsafe { ManuallyDrop::take(&mut self.target) } + .into_filelike() + .into_raw_filelike(); + + #[cfg(debug_assertions)] + debug_assert_eq!(self.orig, _raw); + } +} + +impl Drop for SocketlikeView<'_, Target> { + #[inline] + fn drop(&mut self) { + // Use `Into*` to consume `self.target` without freeing its resource. + // + // Safety: Using `ManuallyDrop::take` requires us to ensure that + // `self.target` is not used again. We don't use it again here, and + // this is the `drop` function, so we know it's not used afterward. + let _raw = unsafe { ManuallyDrop::take(&mut self.target) } + .into_socketlike() + .into_raw_socketlike(); + + #[cfg(debug_assertions)] + debug_assert_eq!(self.orig, _raw); + } +} + +impl fmt::Debug for FilelikeView<'_, Target> { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("FilelikeView") + .field("target", &*self) + .finish() + } +} + +impl fmt::Debug for SocketlikeView<'_, Target> { + #[allow(clippy::missing_inline_in_public_items)] + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("SocketlikeView") + .field("target", &*self) + .finish() + } +} + +#[cfg(any(unix, target_os = "wasi"))] +unsafe impl FilelikeViewType for OwnedFd {} +#[cfg(windows)] +unsafe impl FilelikeViewType for OwnedHandle {} +#[cfg(windows)] +unsafe impl SocketlikeViewType for OwnedSocket {} +unsafe impl FilelikeViewType for std::fs::File {} +unsafe impl SocketlikeViewType for std::net::TcpStream {} +unsafe impl SocketlikeViewType for std::net::TcpListener {} +unsafe impl SocketlikeViewType for std::net::UdpSocket {} +#[cfg(unix)] +unsafe impl SocketlikeViewType for std::os::unix::net::UnixStream {} +#[cfg(unix)] +unsafe impl SocketlikeViewType for std::os::unix::net::UnixListener {} + +#[cfg(unix)] +unsafe impl SocketlikeViewType for std::os::unix::net::UnixDatagram {} +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "os_pipe")] +unsafe impl FilelikeViewType for os_pipe::PipeWriter {} +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "os_pipe")] +unsafe impl FilelikeViewType for os_pipe::PipeReader {} + +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "socket2")] +unsafe impl SocketlikeViewType for socket2::Socket {} + +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::net::TcpStream {} +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::net::TcpListener {} +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::net::UdpSocket {} +#[cfg(unix)] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::os::unix::net::UnixStream {} +#[cfg(unix)] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::os::unix::net::UnixListener {} +#[cfg(unix)] +#[cfg(feature = "async_std")] +unsafe impl SocketlikeViewType for async_std::os::unix::net::UnixDatagram {} + +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::TcpStream {} +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::TcpListener {} +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::UdpSocket {} +#[cfg(unix)] +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::UnixDatagram {} +#[cfg(unix)] +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::UnixListener {} +#[cfg(unix)] +#[cfg(feature = "mio")] +unsafe impl SocketlikeViewType for mio::net::UnixStream {} +#[cfg(unix)] +#[cfg(feature = "mio")] +unsafe impl FilelikeViewType for mio::unix::pipe::Receiver {} +#[cfg(unix)] +#[cfg(feature = "mio")] +unsafe impl FilelikeViewType for mio::unix::pipe::Sender {} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,66 @@ +# 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.48" +name = "is-terminal" +version = "0.4.3" +authors = [ + "softprops ", + "Dan Gohman ", +] +include = [ + "src", + "build.rs", + "Cargo.toml", + "COPYRIGHT", + "LICENSE*", + "/*.md", +] +description = "Test whether a given stream is a terminal" +documentation = "http://docs.rs/is-terminal" +readme = "README.md" +keywords = [ + "terminal", + "tty", + "isatty", +] +categories = ["command-line-interface"] +license = "MIT" +repository = "https://github.com/sunfishcode/is-terminal" + +[dependencies.io-lifetimes] +version = "1.0.0" + +[dev-dependencies.atty] +version = "0.2.14" + +[target."cfg(any(unix, target_os = \"wasi\"))".dev-dependencies.libc] +version = "0.2.110" + +[target."cfg(not(any(windows, target_os = \"hermit\", target_os = \"unknown\")))".dependencies.rustix] +version = "0.36.4" +features = ["termios"] + +[target."cfg(target_os = \"hermit\")".dependencies.hermit-abi] +version = "0.3.0" + +[target."cfg(windows)".dependencies.windows-sys] +version = "0.45.0" +features = [ + "Win32_Foundation", + "Win32_Storage_FileSystem", + "Win32_System_Console", +] + +[target."cfg(windows)".dev-dependencies.tempfile] +version = "3" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT-atty cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT-atty --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT-atty 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/LICENSE-MIT-atty 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,23 @@ +Portions of this project are derived from atty, which bears the following +copyright notice and permission notice: + +Copyright (c) 2015-2019 Doug Tangren + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,104 @@ +
+

is-terminal

+ +

+ Test whether a given stream is a terminal +

+ +

+ Github Actions CI Status + crates.io page + docs.rs docs +

+
+ +is-terminal is a simple utility that answers one question: + +> Is this a terminal? + +A "terminal", also known as a "tty", is an I/O device which may be interactive +and may support color and other special features. This crate doesn't provide +any of those features; it just answers this one question. + +On Unix-family platforms, this is effectively the same as the [`isatty`] +function for testing whether a given stream is a terminal, though it accepts +high-level stream types instead of raw file descriptors. + +On Windows, it uses a variety of techniques to determine whether the given +stream is a terminal. + +This crate is derived from [the atty crate] with [PR \#51] bug fix and +[PR \#54] port to windows-sys applied. The only additional difference is that +the atty crate only accepts stdin, stdout, or stderr, while this crate accepts +any stream. In particular, this crate does not access any stream that is not +passed to it, in accordance with [I/O safety]. + +[PR \#51]: https://github.com/softprops/atty/pull/51 +[PR \#54]: https://github.com/softprops/atty/pull/54 + +## Example + +```rust +use is_terminal::IsTerminal; + +fn main() { + if std::io::stdout().is_terminal() { + println!("Stdout is a terminal"); + } else { + println!("Stdout is not a terminal"); + } +} +``` + +## Testing + +This library is tested on both Unix-family and Windows platforms. + +To test it on a platform manually, use the provided `stdio` example program. +When run normally, it prints this: + +```bash +$ cargo run --example stdio +stdin? true +stdout? true +stderr? true +``` + +To test stdin, pipe some text to the program: + +```bash +$ cat | cargo run --example stdio +stdin? false +stdout? true +stderr? true +``` + +To test stdout, pipe the program to something: + +```bash +$ cargo run --example stdio | cat +stdin? true +stdout? false +stderr? true +``` + +To test stderr, pipe the program to something redirecting stderr: + +```bash +$ cargo run --example stdio 2>&1 | cat +stdin? true +stdout? false +stderr? false +``` + +# Minimum Supported Rust Version (MSRV) + +This crate currently works on the version of [Rust on Debian stable], which is +currently Rust 1.48. 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. + +[`isatty`]: https://man7.org/linux/man-pages/man3/isatty.3.html +[the atty crate]: https://crates.io/crates/atty +[I/O safety]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md +[Rust on Debian stable]: https://packages.debian.org/stable/rust/rustc diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/is-terminal/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/is-terminal/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,372 @@ +//! is-terminal is a simple utility that answers one question: +//! +//! > Is this a terminal? +//! +//! A "terminal", also known as a "tty", is an I/O device which may be +//! interactive and may support color and other special features. This crate +//! doesn't provide any of those features; it just answers this one question. +//! +//! On Unix-family platforms, this is effectively the same as the [`isatty`] +//! function for testing whether a given stream is a terminal, though it +//! accepts high-level stream types instead of raw file descriptors. +//! +//! On Windows, it uses a variety of techniques to determine whether the +//! given stream is a terminal. +//! +//! # Example +//! +//! ```rust +//! use is_terminal::IsTerminal; +//! +//! if std::io::stdout().is_terminal() { +//! println!("stdout is a terminal") +//! } +//! ``` +//! +//! [`isatty`]: https://man7.org/linux/man-pages/man3/isatty.3.html + +#![cfg_attr(unix, no_std)] + +#[cfg(not(target_os = "unknown"))] +use io_lifetimes::AsFilelike; +#[cfg(windows)] +use io_lifetimes::BorrowedHandle; +#[cfg(windows)] +use windows_sys::Win32::Foundation::HANDLE; +#[cfg(windows)] +use windows_sys::Win32::System::Console::STD_HANDLE; + +pub trait IsTerminal { + /// Returns true if this is a terminal. + /// + /// # Example + /// + /// ``` + /// use is_terminal::IsTerminal; + /// + /// if std::io::stdout().is_terminal() { + /// println!("stdout is a terminal") + /// } + /// ``` + fn is_terminal(&self) -> bool; +} + +#[cfg(not(target_os = "unknown"))] +impl IsTerminal for Stream { + #[inline] + fn is_terminal(&self) -> bool { + #[cfg(any(unix, target_os = "wasi"))] + { + rustix::termios::isatty(self) + } + + #[cfg(target_os = "hermit")] + { + hermit_abi::isatty(self.as_filelike().as_fd()) + } + + #[cfg(windows)] + { + _is_terminal(self.as_filelike()) + } + } +} + +// The Windows implementation here is copied from atty, with #51 and #54 +// applied. The only significant modification is to take a `BorrowedHandle` +// argument instead of using a `Stream` enum. + +#[cfg(windows)] +fn _is_terminal(stream: BorrowedHandle<'_>) -> bool { + use std::os::windows::io::AsRawHandle; + use windows_sys::Win32::System::Console::GetStdHandle; + use windows_sys::Win32::System::Console::{ + STD_ERROR_HANDLE as STD_ERROR, STD_INPUT_HANDLE as STD_INPUT, + STD_OUTPUT_HANDLE as STD_OUTPUT, + }; + + let (fd, others) = unsafe { + if stream.as_raw_handle() == GetStdHandle(STD_INPUT) as _ { + (STD_INPUT, [STD_ERROR, STD_OUTPUT]) + } else if stream.as_raw_handle() == GetStdHandle(STD_OUTPUT) as _ { + (STD_OUTPUT, [STD_INPUT, STD_ERROR]) + } else if stream.as_raw_handle() == GetStdHandle(STD_ERROR) as _ { + (STD_ERROR, [STD_INPUT, STD_OUTPUT]) + } else { + return false; + } + }; + if unsafe { console_on_any(&[fd]) } { + // False positives aren't possible. If we got a console then + // we definitely have a tty on stdin. + return true; + } + + // At this point, we *could* have a false negative. We can determine that + // this is true negative if we can detect the presence of a console on + // any of the other streams. If another stream has a console, then we know + // we're in a Windows console and can therefore trust the negative. + if unsafe { console_on_any(&others) } { + return false; + } + + // Otherwise, we fall back to a very strange msys hack to see if we can + // sneakily detect the presence of a tty. + // Safety: function has no invariants. an invalid handle id will cause + // GetFileInformationByHandleEx to return an error. + let handle = unsafe { GetStdHandle(fd) }; + unsafe { msys_tty_on(handle) } +} + +/// Returns true if any of the given fds are on a console. +#[cfg(windows)] +unsafe fn console_on_any(fds: &[STD_HANDLE]) -> bool { + use windows_sys::Win32::System::Console::{GetConsoleMode, GetStdHandle}; + + for &fd in fds { + let mut out = 0; + let handle = GetStdHandle(fd); + if GetConsoleMode(handle, &mut out) != 0 { + return true; + } + } + false +} + +/// Returns true if there is an MSYS tty on the given handle. +#[cfg(windows)] +unsafe fn msys_tty_on(handle: HANDLE) -> bool { + use std::ffi::c_void; + use windows_sys::Win32::{ + Foundation::MAX_PATH, + Storage::FileSystem::{FileNameInfo, GetFileInformationByHandleEx}, + }; + + /// Mirrors windows_sys::Win32::Storage::FileSystem::FILE_NAME_INFO, giving + /// it a fixed length that we can stack allocate + #[repr(C)] + #[allow(non_snake_case)] + struct FILE_NAME_INFO { + FileNameLength: u32, + FileName: [u16; MAX_PATH as usize], + } + let mut name_info = FILE_NAME_INFO { + FileNameLength: 0, + FileName: [0; MAX_PATH as usize], + }; + // Safety: buffer length is fixed. + let res = GetFileInformationByHandleEx( + handle, + FileNameInfo, + &mut name_info as *mut _ as *mut c_void, + std::mem::size_of::() as u32, + ); + if res == 0 { + return false; + } + + let s = &name_info.FileName[..name_info.FileNameLength as usize / 2]; + let name = String::from_utf16_lossy(s); + // This checks whether 'pty' exists in the file name, which indicates that + // a pseudo-terminal is attached. To mitigate against false positives + // (e.g., an actual file name that contains 'pty'), we also require that + // either the strings 'msys-' or 'cygwin-' are in the file name as well.) + let is_msys = name.contains("msys-") || name.contains("cygwin-"); + let is_pty = name.contains("-pty"); + is_msys && is_pty +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::io::Stdin { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::io::Stdout { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::io::Stderr { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl<'a> IsTerminal for std::io::StdinLock<'a> { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl<'a> IsTerminal for std::io::StdoutLock<'a> { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl<'a> IsTerminal for std::io::StderrLock<'a> { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl<'a> IsTerminal for std::fs::File { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::process::ChildStdin { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::process::ChildStdout { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(target_os = "unknown")] +impl IsTerminal for std::process::ChildStderr { + #[inline] + fn is_terminal(&self) -> bool { + false + } +} + +#[cfg(test)] +mod tests { + #[cfg(not(target_os = "unknown"))] + use super::IsTerminal; + + #[test] + #[cfg(windows)] + fn stdin() { + assert_eq!( + atty::is(atty::Stream::Stdin), + std::io::stdin().is_terminal() + ) + } + + #[test] + #[cfg(windows)] + fn stdout() { + assert_eq!( + atty::is(atty::Stream::Stdout), + std::io::stdout().is_terminal() + ) + } + + #[test] + #[cfg(windows)] + fn stderr() { + assert_eq!( + atty::is(atty::Stream::Stderr), + std::io::stderr().is_terminal() + ) + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stdin() { + unsafe { + assert_eq!( + atty::is(atty::Stream::Stdin), + rustix::io::stdin().is_terminal() + ) + } + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stdout() { + unsafe { + assert_eq!( + atty::is(atty::Stream::Stdout), + rustix::io::stdout().is_terminal() + ) + } + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stderr() { + unsafe { + assert_eq!( + atty::is(atty::Stream::Stderr), + rustix::io::stderr().is_terminal() + ) + } + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stdin_vs_libc() { + unsafe { + assert_eq!( + libc::isatty(libc::STDIN_FILENO) != 0, + rustix::io::stdin().is_terminal() + ) + } + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stdout_vs_libc() { + unsafe { + assert_eq!( + libc::isatty(libc::STDOUT_FILENO) != 0, + rustix::io::stdout().is_terminal() + ) + } + } + + #[test] + #[cfg(any(unix, target_os = "wasi"))] + fn stderr_vs_libc() { + unsafe { + assert_eq!( + libc::isatty(libc::STDERR_FILENO) != 0, + rustix::io::stderr().is_terminal() + ) + } + } + + // Verify that the msys_tty_on function works with long path. + #[test] + #[cfg(windows)] + fn msys_tty_on_path_length() { + use std::{fs::File, os::windows::io::AsRawHandle}; + use windows_sys::Win32::Foundation::MAX_PATH; + + let dir = tempfile::tempdir().expect("Unable to create temporary directory"); + let file_path = dir.path().join("ten_chars_".repeat(25)); + // Ensure that the path is longer than MAX_PATH. + assert!(file_path.to_string_lossy().len() > MAX_PATH as usize); + let file = File::create(file_path).expect("Unable to create file"); + + assert!(!unsafe { crate::msys_tty_on(file.as_raw_handle() as isize) }); + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,76 @@ +# 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.48" +name = "linux-raw-sys" +version = "0.1.4" +authors = ["Dan Gohman "] +exclude = [ + "/gen", + "/.*", +] +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", + "ioctl", + "netlink", +] +targets = [ + "x86_64-unknown-linux-gnu", + "i686-unknown-linux-gnu", +] + +[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" + +[features] +default = [ + "std", + "general", + "errno", +] +errno = [] +general = [] +ioctl = [] +netlink = [] +no_std = [] +rustc-dep-of-std = [ + "core", + "compiler_builtins", + "no_std", +] +std = [] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 [report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/COPYRIGHT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/COPYRIGHT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/COPYRIGHT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/COPYRIGHT 2023-02-17 23:07:30.000000000 +0000 @@ -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 + or + + - the Apache License, Version 2.0 + or + , + - or the MIT license + or + , + +at your option. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,201 @@ + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-Apache-2.0_WITH_LLVM-exception cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-Apache-2.0_WITH_LLVM-exception --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-Apache-2.0_WITH_LLVM-exception 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-Apache-2.0_WITH_LLVM-exception 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/ORG_CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/ORG_CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/ORG_CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/ORG_CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 +[report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,44 @@ +
+

linux-raw-sys

+ +

+ Generated bindings for Linux's userspace API +

+ +

+ Github Actions CI Status + zulip chat + crates.io page + docs.rs docs +

+
+ +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.48. 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4943 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4210752; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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 PROT_BTI: u32 = 16; +pub const PROT_MTE: u32 = 32; +pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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 __NR3264_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 __NR3264_statfs: u32 = 43; +pub const __NR3264_fstatfs: u32 = 44; +pub const __NR3264_truncate: u32 = 45; +pub const __NR3264_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 __NR3264_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 __NR3264_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 __NR3264_fstatat: u32 = 79; +pub const __NR3264_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 __NR3264_mmap: u32 = 222; +pub const __NR3264_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_arch_specific_syscall: u32 = 244; +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_syscalls: u32 = 451; +pub const __NR_fcntl: u32 = 25; +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_lseek: u32 = 62; +pub const __NR_sendfile: u32 = 71; +pub const __NR_newfstatat: u32 = 79; +pub const __NR_fstat: u32 = 80; +pub const __NR_mmap: u32 = 222; +pub const __NR_fadvise64: u32 = 223; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 1usize], +} +pub type old_sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __kernel_long_t; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1556 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 KVM_SET_BOOT_CPU_ID: u32 = 44664; +pub const KVM_SET_MP_STATE: u32 = 1074048665; +pub const KVM_GET_MP_STATE: u32 = 2147790488; +pub const KVM_SET_MEMORY_REGION: u32 = 1075359296; +pub const KVM_GET_API_VERSION: u32 = 44544; +pub const KVM_S390_GET_SKEYS: u32 = 1077980850; +pub const KVM_SET_ONE_REG: u32 = 1074835116; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 1075883590; +pub const KVM_S390_INTERRUPT: u32 = 1074835092; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 2147528332; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 1074835060; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 2148576955; +pub const KVM_S390_UCAS_MAP: u32 = 1075359312; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 1077980836; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221794490; +pub const KVM_CREATE_PIT2: u32 = 1077980791; +pub const KVM_S390_VCPU_FAULT: u32 = 1074310738; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 1074835047; +pub const KVM_SET_VAPIC_ADDR: u32 = 1074310803; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 1074835094; +pub const KVM_X86_SETUP_MCE: u32 = 1074310812; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 1077980786; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 1078505161; +pub const KVM_GET_CLOCK: u32 = 2150674044; +pub const KVM_SET_FPU: u32 = 1073786509; +pub const KVM_KVMCLOCK_CTRL: u32 = 44717; +pub const KVM_PPC_GET_PVINFO: u32 = 1082175137; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 2148052637; +pub const KVM_S390_GET_IRQ_STATE: u32 = 1075883702; +pub const KVM_GET_DEVICE_ATTR: u32 = 1075359458; +pub const KVM_S390_INITIAL_RESET: u32 = 44695; +pub const KVM_SET_REGS: u32 = 1130409602; +pub const KVM_GET_TSC_KHZ: u32 = 44707; +pub const KVM_CHECK_EXTENSION: u32 = 44547; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 2148576942; +pub const KVM_GET_DIRTY_LOG: u32 = 1074835010; +pub const KVM_S390_SET_IRQ_STATE: u32 = 1075883701; +pub const KVM_S390_NORMAL_RESET: u32 = 44739; +pub const KVM_SET_SIGNAL_MASK: u32 = 1074048651; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 1078505163; +pub const KVM_SET_GSI_ROUTING: u32 = 1074310762; +pub const KVM_CREATE_VCPU: u32 = 44609; +pub const KVM_S390_UCAS_UNMAP: u32 = 1075359313; +pub const KVM_S390_STORE_STATUS: u32 = 1074310805; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 1074835048; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 1077980784; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 44550; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 1074835115; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 1074835115; +pub const KVM_DIRTY_TLB: u32 = 1074835114; +pub const KVM_NMI: u32 = 44698; +pub const KVM_HYPERV_EVENTFD: u32 = 1075359421; +pub const KVM_S390_MEM_OP: u32 = 1077980849; +pub const KVM_PPC_SVM_OFF: u32 = 44723; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 2148576941; +pub const KVM_INTERRUPT: u32 = 1074048646; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 2147528323; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 1074310728; +pub const KVM_GET_REGS: u32 = 2204151425; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 44640; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 2151722601; +pub const KVM_SET_NR_MMU_PAGES: u32 = 44612; +pub const KVM_IOEVENTFD: u32 = 1077980793; +pub const KVM_RUN: u32 = 44672; +pub const KVM_S390_SET_SKEYS: u32 = 1077980851; +pub const KVM_SET_DEVICE_ATTR: u32 = 1075359457; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 1077980789; +pub const KVM_SMI: u32 = 44727; +pub const KVM_SET_TSS_ADDR: u32 = 44615; +pub const KVM_GET_NR_MMU_PAGES: u32 = 44613; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 44657; +pub const KVM_HAS_DEVICE_ATTR: u32 = 1075359459; +pub const KVM_IRQFD: u32 = 1075883638; +pub const KVM_S390_SET_CMMA_BITS: u32 = 1075883705; +pub const KVM_SET_IRQCHIP: u32 = 2181607011; +pub const KVM_SIGNAL_MSI: u32 = 1075883685; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 44548; +pub const KVM_CREATE_VM: u32 = 44545; +pub const KVM_S390_CLEAR_RESET: u32 = 44740; +pub const KVM_RESET_DIRTY_RINGS: u32 = 44743; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 1074310771; +pub const KVM_CREATE_PIT: u32 = 44644; +pub const KVM_SET_GUEST_DEBUG: u32 = 1107865243; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 1074048706; +pub const KVM_SET_CLOCK: u32 = 1076932219; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 2186325670; +pub const KVM_SET_TSC_KHZ: u32 = 44706; +pub const KVM_S390_IRQ: u32 = 1078505140; +pub const KVM_ENABLE_CAP: u32 = 1080602275; +pub const KVM_IRQ_LINE: u32 = 1074310753; +pub const KVM_SET_SREGS: u32 = 1073786500; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 2148576956; +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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/aarch64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5063 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4210752; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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_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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT64_HAS_BROKEN_ST_INO: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigaction__bindgen_ty_1 { +pub _sa_handler: __sighandler_t, +pub _sa_sigaction: ::core::option::Option, +} +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1452 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 CM_IOSDBGLVL: u32 = 1074029562; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221512961; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/arm/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,358 @@ +#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)] +#![cfg_attr(not(feature = "std"), no_std)] + +#[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, however a consequence + // of it being platform-specific is that any code which depends on the + // signedness of `char` is already non-portable. So we can just use `u8` + // here and no portable code will notice. + pub type c_char = u8; + + // 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 = "general")] +pub mod cmsg_macros { + use crate::ctypes::{c_long, c_uint, c_uchar}; + use crate::general::{cmsghdr, msghdr}; + use core::mem::size_of; + use core::ptr; + + pub unsafe fn CMSG_ALIGN(len: c_uint) -> c_uint { + let c_long_size = size_of::() as c_uint; + (len + c_long_size - 1) & !(c_long_size - 1) + } + + pub unsafe fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar { + (cmsg as *mut c_uchar).offset(size_of::() as isize) + } + + pub unsafe fn CMSG_SPACE(len: c_uint) -> c_uint { + size_of::() as c_uint + CMSG_ALIGN(len) + } + + pub unsafe fn CMSG_LEN(len: c_uint) -> c_uint { + size_of::() as c_uint + len + } + + pub unsafe fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr { + if (*mhdr).msg_controllen < size_of::() 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 isize 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).offset(CMSG_ALIGN(cmsg_len as _) as isize) as *mut cmsghdr; + let max = ((*mhdr).msg_control as usize) + ((*mhdr).msg_controllen as usize); + + if cmsg_len < size_of::() as _ { + return ptr::null_mut(); + } + + if next_cmsg.offset(1) as usize > max || next_cmsg as usize + CMSG_ALIGN(cmsg_len as _) as usize > max + { + return ptr::null_mut(); + } + + next_cmsg + } +} + +// The rest of this file is auto-generated! +#[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 = "ioctl")] +#[cfg(target_arch = "arm")] +#[path = "arm/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "arm")] +#[path = "arm/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "aarch64")] +#[path = "aarch64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "aarch64")] +#[path = "aarch64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "mips")] +#[path = "mips/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "mips")] +#[path = "mips/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "mips64")] +#[path = "mips64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "mips64")] +#[path = "mips64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "powerpc")] +#[path = "powerpc/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "powerpc")] +#[path = "powerpc/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "powerpc64")] +#[path = "powerpc64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "powerpc64")] +#[path = "powerpc64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "riscv32")] +#[path = "riscv32/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "riscv32")] +#[path = "riscv32/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "riscv64")] +#[path = "riscv64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "riscv64")] +#[path = "riscv64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "s390x")] +#[path = "s390x/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "s390x")] +#[path = "s390x/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "sparc")] +#[path = "sparc/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "sparc")] +#[path = "sparc/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "sparc64")] +#[path = "sparc64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "sparc64")] +#[path = "sparc64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(target_arch = "x86")] +#[path = "x86/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(target_arch = "x86")] +#[path = "x86/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[path = "x86_64/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))] +#[path = "x86_64/netlink.rs"] +pub mod netlink; +#[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 = "ioctl")] +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +#[path = "x32/ioctl.rs"] +pub mod ioctl; +#[cfg(feature = "netlink")] +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +#[path = "x32/netlink.rs"] +pub mod netlink; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,137 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5228 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 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 __FD_SETSIZE: u32 = 1024; +pub const O_ACCMODE: u32 = 3; +pub const O_RDONLY: u32 = 0; +pub const O_WRONLY: u32 = 1; +pub const O_RDWR: u32 = 2; +pub const O_DIRECTORY: u32 = 65536; +pub const O_NOFOLLOW: u32 = 131072; +pub const O_NOATIME: u32 = 262144; +pub const O_CLOEXEC: u32 = 524288; +pub const O_PATH: u32 = 2097152; +pub const __O_TMPFILE: u32 = 4194304; +pub const O_TMPFILE: u32 = 4259840; +pub const O_TMPFILE_MASK: u32 = 4260096; +pub const O_NDELAY: u32 = 128; +pub const F_DUPFD: u32 = 0; +pub const F_GETFD: u32 = 1; +pub const F_SETFD: u32 = 2; +pub const F_GETFL: u32 = 3; +pub const F_SETFL: u32 = 4; +pub const F_SETSIG: u32 = 10; +pub const F_GETSIG: u32 = 11; +pub const F_SETOWN_EX: u32 = 15; +pub const F_GETOWN_EX: u32 = 16; +pub const F_GETOWNER_UIDS: u32 = 17; +pub const F_OFD_GETLK: u32 = 36; +pub const F_OFD_SETLK: u32 = 37; +pub const F_OFD_SETLKW: u32 = 38; +pub const F_OWNER_TID: u32 = 0; +pub const F_OWNER_PID: u32 = 1; +pub const F_OWNER_PGRP: u32 = 2; +pub const FD_CLOEXEC: u32 = 1; +pub const F_RDLCK: u32 = 0; +pub const F_WRLCK: u32 = 1; +pub const F_UNLCK: u32 = 2; +pub const F_EXLCK: u32 = 4; +pub const F_SHLCK: u32 = 8; +pub const LOCK_SH: u32 = 1; +pub const LOCK_EX: u32 = 2; +pub const LOCK_NB: u32 = 4; +pub const LOCK_UN: u32 = 8; +pub const LOCK_MAND: u32 = 32; +pub const LOCK_READ: u32 = 64; +pub const LOCK_WRITE: u32 = 128; +pub const LOCK_RW: u32 = 192; +pub const F_LINUX_SPECIFIC_BASE: u32 = 1024; +pub const RESOLVE_NO_XDEV: u32 = 1; +pub const RESOLVE_NO_MAGICLINKS: u32 = 2; +pub const RESOLVE_NO_SYMLINKS: u32 = 4; +pub const RESOLVE_BENEATH: u32 = 8; +pub const RESOLVE_IN_ROOT: u32 = 16; +pub const RESOLVE_CACHED: u32 = 32; +pub const F_SETLEASE: u32 = 1024; +pub const F_GETLEASE: u32 = 1025; +pub const F_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_SIZEBITS: u32 = 13; +pub const _IOC_DIRBITS: u32 = 3; +pub const _IOC_NONE: u32 = 1; +pub const _IOC_READ: u32 = 2; +pub const _IOC_WRITE: u32 = 4; +pub const _IOC_NRBITS: u32 = 8; +pub const _IOC_TYPEBITS: u32 = 8; +pub const _IOC_NRMASK: u32 = 255; +pub const _IOC_TYPEMASK: u32 = 255; +pub const _IOC_SIZEMASK: u32 = 8191; +pub const _IOC_DIRMASK: u32 = 7; +pub const _IOC_NRSHIFT: u32 = 0; +pub const _IOC_TYPESHIFT: u32 = 8; +pub const _IOC_SIZESHIFT: u32 = 16; +pub const _IOC_DIRSHIFT: u32 = 29; +pub const IOC_IN: u32 = 2147483648; +pub const IOC_OUT: u32 = 1073741824; +pub const IOC_INOUT: u32 = 3221225472; +pub const IOCSIZE_MASK: u32 = 536805376; +pub const IOCSIZE_SHIFT: u32 = 16; +pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0; +pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1; +pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2; +pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3; +pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3; +pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16; +pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1; +pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4; +pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5; +pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6; +pub const FSCRYPT_MODE_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +pub const PROT_NONE: u32 = 0; +pub const PROT_READ: u32 = 1; +pub const PROT_WRITE: u32 = 2; +pub const PROT_EXEC: u32 = 4; +pub const PROT_SEM: u32 = 16; +pub const PROT_GROWSDOWN: u32 = 16777216; +pub const PROT_GROWSUP: u32 = 33554432; +pub const MAP_TYPE: u32 = 15; +pub const MAP_FIXED: u32 = 16; +pub const MAP_RENAME: u32 = 32; +pub const MAP_AUTOGROW: u32 = 64; +pub const MAP_LOCAL: u32 = 128; +pub const MAP_AUTORSRV: u32 = 256; +pub const MAP_NORESERVE: u32 = 1024; +pub const MAP_ANONYMOUS: u32 = 2048; +pub const MAP_GROWSDOWN: u32 = 4096; +pub const MAP_DENYWRITE: u32 = 8192; +pub const MAP_EXECUTABLE: u32 = 16384; +pub const MAP_LOCKED: u32 = 32768; +pub const MAP_POPULATE: u32 = 65536; +pub const MAP_NONBLOCK: u32 = 131072; +pub const MAP_STACK: u32 = 262144; +pub const MAP_HUGETLB: u32 = 524288; +pub const MAP_FIXED_NOREPLACE: u32 = 1048576; +pub const MS_ASYNC: u32 = 1; +pub const MS_INVALIDATE: u32 = 2; +pub const MS_SYNC: u32 = 4; +pub const MCL_CURRENT: u32 = 1; +pub const MCL_FUTURE: u32 = 2; +pub const MCL_ONFAULT: u32 = 4; +pub const MLOCK_ONFAULT: u32 = 1; +pub const MADV_NORMAL: u32 = 0; +pub const MADV_RANDOM: u32 = 1; +pub const MADV_SEQUENTIAL: u32 = 2; +pub const MADV_WILLNEED: u32 = 3; +pub const MADV_DONTNEED: u32 = 4; +pub const MADV_FREE: u32 = 8; +pub const MADV_REMOVE: u32 = 9; +pub const MADV_DONTFORK: u32 = 10; +pub const MADV_DOFORK: u32 = 11; +pub const MADV_MERGEABLE: u32 = 12; +pub const MADV_UNMERGEABLE: u32 = 13; +pub const MADV_HWPOISON: u32 = 100; +pub const MADV_HUGEPAGE: u32 = 14; +pub const MADV_NOHUGEPAGE: u32 = 15; +pub const MADV_DONTDUMP: u32 = 16; +pub const MADV_DODUMP: u32 = 17; +pub const MADV_WIPEONFORK: u32 = 18; +pub const MADV_KEEPONFORK: u32 = 19; +pub const MADV_COLD: u32 = 20; +pub const MADV_PAGEOUT: u32 = 21; +pub const MADV_POPULATE_READ: u32 = 22; +pub const MADV_POPULATE_WRITE: u32 = 23; +pub const MAP_FILE: u32 = 0; +pub const PKEY_DISABLE_ACCESS: u32 = 1; +pub const PKEY_DISABLE_WRITE: u32 = 2; +pub const PKEY_ACCESS_MASK: u32 = 3; +pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_NOFILE: u32 = 5; +pub const RLIMIT_AS: u32 = 6; +pub const RLIMIT_RSS: u32 = 7; +pub const RLIMIT_NPROC: u32 = 8; +pub const RLIMIT_MEMLOCK: u32 = 9; +pub const 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_RESET_ON_FORK: u32 = 1073741824; +pub const SCHED_FLAG_RESET_ON_FORK: u32 = 1; +pub const SCHED_FLAG_RECLAIM: u32 = 2; +pub const SCHED_FLAG_DL_OVERRUN: u32 = 4; +pub const SCHED_FLAG_KEEP_POLICY: u32 = 8; +pub const SCHED_FLAG_KEEP_PARAMS: u32 = 16; +pub const SCHED_FLAG_UTIL_CLAMP_MIN: u32 = 32; +pub const SCHED_FLAG_UTIL_CLAMP_MAX: u32 = 64; +pub const SCHED_FLAG_KEEP_ALL: u32 = 24; +pub const SCHED_FLAG_UTIL_CLAMP: u32 = 96; +pub const SCHED_FLAG_ALL: u32 = 127; +pub const _NSIG: u32 = 128; +pub const SIGHUP: u32 = 1; +pub const SIGINT: u32 = 2; +pub const SIGQUIT: u32 = 3; +pub const SIGILL: u32 = 4; +pub const SIGTRAP: u32 = 5; +pub const SIGIOT: u32 = 6; +pub const SIGABRT: u32 = 6; +pub const SIGEMT: u32 = 7; +pub const SIGFPE: u32 = 8; +pub const SIGKILL: u32 = 9; +pub const SIGBUS: u32 = 10; +pub const SIGSEGV: u32 = 11; +pub const SIGSYS: u32 = 12; +pub const SIGPIPE: u32 = 13; +pub const SIGALRM: u32 = 14; +pub const SIGTERM: u32 = 15; +pub const SIGUSR1: u32 = 16; +pub const SIGUSR2: u32 = 17; +pub const SIGCHLD: u32 = 18; +pub const SIGCLD: u32 = 18; +pub const SIGPWR: u32 = 19; +pub const SIGWINCH: u32 = 20; +pub const SIGURG: u32 = 21; +pub const SIGIO: u32 = 22; +pub const SIGPOLL: u32 = 22; +pub const SIGSTOP: u32 = 23; +pub const SIGTSTP: u32 = 24; +pub const SIGCONT: u32 = 25; +pub const SIGTTIN: u32 = 26; +pub const SIGTTOU: u32 = 27; +pub const SIGVTALRM: u32 = 28; +pub const SIGPROF: u32 = 29; +pub const SIGXCPU: u32 = 30; +pub const SIGXFSZ: u32 = 31; +pub const SIGRTMIN: u32 = 32; +pub const SIGRTMAX: u32 = 128; +pub const SA_ONSTACK: u32 = 134217728; +pub const SA_RESETHAND: u32 = 2147483648; +pub const SA_RESTART: u32 = 268435456; +pub const SA_SIGINFO: u32 = 8; +pub const SA_NODEFER: u32 = 1073741824; +pub const SA_NOCLDWAIT: u32 = 65536; +pub const SA_NOCLDSTOP: u32 = 1; +pub const SA_NOMASK: u32 = 1073741824; +pub const SA_ONESHOT: u32 = 2147483648; +pub const MINSIGSTKSZ: u32 = 2048; +pub const SIGSTKSZ: u32 = 8192; +pub const SIG_BLOCK: u32 = 1; +pub const SIG_UNBLOCK: u32 = 2; +pub const SIG_SETMASK: u32 = 3; +pub const SA_UNSUPPORTED: u32 = 1024; +pub const SA_EXPOSE_TAGBITS: u32 = 2048; +pub const SI_MAX_SIZE: u32 = 128; +pub const SI_USER: u32 = 0; +pub const SI_KERNEL: u32 = 128; +pub const SI_QUEUE: i32 = -1; +pub const SI_TIMER: i32 = -2; +pub const SI_MESGQ: i32 = -3; +pub const SI_ASYNCIO: i32 = -4; +pub const SI_SIGIO: i32 = -5; +pub const SI_TKILL: i32 = -6; +pub const SI_DETHREAD: i32 = -7; +pub const SI_ASYNCNL: i32 = -60; +pub const ILL_ILLOPC: u32 = 1; +pub const ILL_ILLOPN: u32 = 2; +pub const ILL_ILLADR: u32 = 3; +pub const ILL_ILLTRP: u32 = 4; +pub const ILL_PRVOPC: u32 = 5; +pub const ILL_PRVREG: u32 = 6; +pub const ILL_COPROC: u32 = 7; +pub const ILL_BADSTK: u32 = 8; +pub const ILL_BADIADDR: u32 = 9; +pub const __ILL_BREAK: u32 = 10; +pub const __ILL_BNDMOD: u32 = 11; +pub const NSIGILL: u32 = 11; +pub const FPE_INTDIV: u32 = 1; +pub const FPE_INTOVF: u32 = 2; +pub const FPE_FLTDIV: u32 = 3; +pub const FPE_FLTOVF: u32 = 4; +pub const FPE_FLTUND: u32 = 5; +pub const FPE_FLTRES: u32 = 6; +pub const FPE_FLTINV: u32 = 7; +pub const FPE_FLTSUB: u32 = 8; +pub const __FPE_DECOVF: u32 = 9; +pub const __FPE_DECDIV: u32 = 10; +pub const __FPE_DECERR: u32 = 11; +pub const __FPE_INVASC: u32 = 12; +pub const __FPE_INVDEC: u32 = 13; +pub const FPE_FLTUNK: u32 = 14; +pub const FPE_CONDTRAP: u32 = 15; +pub const NSIGFPE: u32 = 15; +pub const SEGV_MAPERR: u32 = 1; +pub const SEGV_ACCERR: u32 = 2; +pub const SEGV_BNDERR: u32 = 3; +pub const SEGV_PKUERR: u32 = 4; +pub const SEGV_ACCADI: u32 = 5; +pub const SEGV_ADIDERR: u32 = 6; +pub const SEGV_ADIPERR: u32 = 7; +pub const SEGV_MTEAERR: u32 = 8; +pub const SEGV_MTESERR: u32 = 9; +pub const NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 TIOCPKT_DATA: u32 = 0; +pub const TIOCPKT_FLUSHREAD: u32 = 1; +pub const TIOCPKT_FLUSHWRITE: u32 = 2; +pub const TIOCPKT_STOP: u32 = 4; +pub const TIOCPKT_START: u32 = 8; +pub const TIOCPKT_NOSTOP: u32 = 16; +pub const TIOCPKT_DOSTOP: u32 = 32; +pub const TIOCPKT_IOCTL: u32 = 64; +pub const TIOCGLTC: u32 = 29812; +pub const TIOCSLTC: u32 = 29813; +pub const TIOCGETP: u32 = 29704; +pub const TIOCSETP: u32 = 29705; +pub const TIOCSETN: u32 = 29706; +pub const NCC: u32 = 8; +pub const TIOCM_LE: u32 = 1; +pub const TIOCM_DTR: u32 = 2; +pub const TIOCM_RTS: u32 = 4; +pub const TIOCM_ST: u32 = 16; +pub const TIOCM_SR: u32 = 32; +pub const TIOCM_CTS: u32 = 64; +pub const TIOCM_CAR: u32 = 256; +pub const TIOCM_CD: u32 = 256; +pub const TIOCM_RNG: u32 = 512; +pub const TIOCM_RI: u32 = 512; +pub const TIOCM_DSR: u32 = 1024; +pub const TIOCM_OUT1: u32 = 8192; +pub const TIOCM_OUT2: u32 = 16384; +pub const TIOCM_LOOP: u32 = 32768; +pub const UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_daddr_t = crate::ctypes::c_long; +pub type __kernel_long_t = crate::ctypes::c_long; +pub type __kernel_ulong_t = crate::ctypes::c_ulong; +pub type __kernel_ino_t = __kernel_ulong_t; +pub type __kernel_mode_t = crate::ctypes::c_uint; +pub type __kernel_pid_t = crate::ctypes::c_int; +pub type __kernel_ipc_pid_t = crate::ctypes::c_int; +pub type __kernel_uid_t = crate::ctypes::c_uint; +pub type __kernel_gid_t = crate::ctypes::c_uint; +pub type __kernel_suseconds_t = __kernel_long_t; +pub type __kernel_uid32_t = crate::ctypes::c_uint; +pub type __kernel_gid32_t = crate::ctypes::c_uint; +pub type __kernel_old_uid_t = __kernel_uid_t; +pub type __kernel_old_gid_t = __kernel_gid_t; +pub type __kernel_old_dev_t = crate::ctypes::c_uint; +pub type __kernel_size_t = crate::ctypes::c_uint; +pub type __kernel_ssize_t = crate::ctypes::c_int; +pub type __kernel_ptrdiff_t = crate::ctypes::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 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_sysid: crate::ctypes::c_long, +pub l_pid: __kernel_pid_t, +pub pad: [crate::ctypes::c_long; 4usize], +} +#[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 flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 4usize], +} +pub type old_sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +pub ss_flags: crate::ctypes::c_int, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termios { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termios2 { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +pub c_ispeed: speed_t, +pub c_ospeed: speed_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ktermios { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +pub c_ispeed: speed_t, +pub c_ospeed: speed_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sgttyb { +pub sg_ispeed: crate::ctypes::c_char, +pub sg_ospeed: crate::ctypes::c_char, +pub sg_erase: crate::ctypes::c_char, +pub sg_kill: crate::ctypes::c_char, +pub sg_flags: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tchars { +pub t_intrc: crate::ctypes::c_char, +pub t_quitc: crate::ctypes::c_char, +pub t_startc: crate::ctypes::c_char, +pub t_stopc: crate::ctypes::c_char, +pub t_eofc: crate::ctypes::c_char, +pub t_brkc: crate::ctypes::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ltchars { +pub t_suspc: crate::ctypes::c_char, +pub t_dsuspc: crate::ctypes::c_char, +pub t_rprntc: crate::ctypes::c_char, +pub t_flushc: crate::ctypes::c_char, +pub t_werasc: crate::ctypes::c_char, +pub t_lnextc: crate::ctypes::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct winsize { +pub ws_row: crate::ctypes::c_ushort, +pub ws_col: crate::ctypes::c_ushort, +pub ws_xpixel: crate::ctypes::c_ushort, +pub ws_ypixel: crate::ctypes::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termio { +pub c_iflag: crate::ctypes::c_ushort, +pub c_oflag: crate::ctypes::c_ushort, +pub c_cflag: crate::ctypes::c_ushort, +pub c_lflag: crate::ctypes::c_ushort, +pub c_line: crate::ctypes::c_char, +pub c_cc: [crate::ctypes::c_uchar; 23usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[repr(C)] +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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_uid_t, +pub st_gid: __kernel_gid_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_uid_t, +pub st_gid: __kernel_gid_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, +} +pub type fsid_t = __kernel_fsid_t; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1550 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 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 KVM_SET_BOOT_CPU_ID: u32 = 536915576; +pub const KVM_SET_MP_STATE: u32 = 2147790489; +pub const KVM_GET_MP_STATE: u32 = 1074048664; +pub const KVM_SET_MEMORY_REGION: u32 = 2149101120; +pub const KVM_GET_API_VERSION: u32 = 536915456; +pub const KVM_S390_GET_SKEYS: u32 = 2151722674; +pub const KVM_SET_ONE_REG: u32 = 2148576940; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 2149625414; +pub const KVM_S390_INTERRUPT: u32 = 2148576916; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 1073786508; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 2148576884; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 1074835131; +pub const KVM_S390_UCAS_MAP: u32 = 2149101136; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 2151722660; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221532346; +pub const KVM_CREATE_PIT2: u32 = 2151722615; +pub const KVM_S390_VCPU_FAULT: u32 = 2147790418; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 2148576871; +pub const KVM_SET_VAPIC_ADDR: u32 = 2148052627; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 2148576918; +pub const KVM_X86_SETUP_MCE: u32 = 2148052636; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 2151722610; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 2152246985; +pub const KVM_GET_CLOCK: u32 = 1076932220; +pub const KVM_SET_FPU: u32 = 2147528333; +pub const KVM_KVMCLOCK_CTRL: u32 = 536915629; +pub const KVM_PPC_GET_PVINFO: u32 = 2155916961; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 1074310813; +pub const KVM_S390_GET_IRQ_STATE: u32 = 2149625526; +pub const KVM_GET_DEVICE_ATTR: u32 = 2149101282; +pub const KVM_S390_INITIAL_RESET: u32 = 536915607; +pub const KVM_SET_REGS: u32 = 2165878402; +pub const KVM_GET_TSC_KHZ: u32 = 536915619; +pub const KVM_CHECK_EXTENSION: u32 = 536915459; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 1074835118; +pub const KVM_GET_DIRTY_LOG: u32 = 2148576834; +pub const KVM_S390_SET_IRQ_STATE: u32 = 2149625525; +pub const KVM_S390_NORMAL_RESET: u32 = 536915651; +pub const KVM_SET_SIGNAL_MASK: u32 = 2147790475; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 2152246987; +pub const KVM_SET_GSI_ROUTING: u32 = 2148052586; +pub const KVM_CREATE_VCPU: u32 = 536915521; +pub const KVM_S390_UCAS_UNMAP: u32 = 2149101137; +pub const KVM_S390_STORE_STATUS: u32 = 2147790485; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 2148576872; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 2151722608; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 536915462; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 2148576939; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 2148576939; +pub const KVM_DIRTY_TLB: u32 = 2148576938; +pub const KVM_NMI: u32 = 536915610; +pub const KVM_HYPERV_EVENTFD: u32 = 2149101245; +pub const KVM_S390_MEM_OP: u32 = 2151722673; +pub const KVM_PPC_SVM_OFF: u32 = 536915635; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 1074835117; +pub const KVM_INTERRUPT: u32 = 2147790470; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 1073786499; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 2148052552; +pub const KVM_GET_REGS: u32 = 1092136577; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 536915552; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 1077980777; +pub const KVM_SET_NR_MMU_PAGES: u32 = 536915524; +pub const KVM_IOEVENTFD: u32 = 2151722617; +pub const KVM_RUN: u32 = 536915584; +pub const KVM_S390_SET_SKEYS: u32 = 2151722675; +pub const KVM_SET_DEVICE_ATTR: u32 = 2149101281; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 2151722613; +pub const KVM_SMI: u32 = 536915639; +pub const KVM_SET_TSS_ADDR: u32 = 536915527; +pub const KVM_GET_NR_MMU_PAGES: u32 = 536915525; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 536915569; +pub const KVM_HAS_DEVICE_ATTR: u32 = 2149101283; +pub const KVM_IRQFD: u32 = 2149625462; +pub const KVM_S390_SET_CMMA_BITS: u32 = 2149625529; +pub const KVM_SET_IRQCHIP: u32 = 1107865187; +pub const KVM_SIGNAL_MSI: u32 = 2149625509; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 536915460; +pub const KVM_CREATE_VM: u32 = 536915457; +pub const KVM_S390_CLEAR_RESET: u32 = 536915652; +pub const KVM_RESET_DIRTY_RINGS: u32 = 536915655; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 2148052595; +pub const KVM_CREATE_PIT: u32 = 536915556; +pub const KVM_SET_GUEST_DEBUG: u32 = 2148052635; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 2147790530; +pub const KVM_SET_CLOCK: u32 = 2150674043; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 1112583846; +pub const KVM_SET_TSC_KHZ: u32 = 536915618; +pub const KVM_S390_IRQ: u32 = 2152246964; +pub const KVM_ENABLE_CAP: u32 = 2154344099; +pub const KVM_IRQ_LINE: u32 = 2148052577; +pub const KVM_SET_SREGS: u32 = 2147528324; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 1074835132; +pub const 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 SIOCSNETADDR: u32 = 2147781088; +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 OSIOCSNETADDR: u32 = 2147781088; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 536933637; +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 SIOCGNETADDR: u32 = 1074039265; +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 OSIOCGNETADDR: u32 = 1074039265; +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 CM_IOSDBGLVL: u32 = 2147771386; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221512961; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2692 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __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 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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_daddr_t = crate::ctypes::c_long; +pub type __kernel_long_t = crate::ctypes::c_long; +pub type __kernel_ulong_t = crate::ctypes::c_ulong; +pub type __kernel_ino_t = __kernel_ulong_t; +pub type __kernel_mode_t = crate::ctypes::c_uint; +pub type __kernel_pid_t = crate::ctypes::c_int; +pub type __kernel_ipc_pid_t = crate::ctypes::c_int; +pub type __kernel_uid_t = crate::ctypes::c_uint; +pub type __kernel_gid_t = crate::ctypes::c_uint; +pub type __kernel_suseconds_t = __kernel_long_t; +pub type __kernel_uid32_t = crate::ctypes::c_uint; +pub type __kernel_gid32_t = crate::ctypes::c_uint; +pub type __kernel_old_uid_t = __kernel_uid_t; +pub type __kernel_old_gid_t = __kernel_gid_t; +pub type __kernel_old_dev_t = crate::ctypes::c_uint; +pub type __kernel_size_t = crate::ctypes::c_uint; +pub type __kernel_ssize_t = crate::ctypes::c_int; +pub type __kernel_ptrdiff_t = crate::ctypes::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,137 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5156 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 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 __FD_SETSIZE: u32 = 1024; +pub const O_ACCMODE: u32 = 3; +pub const O_RDONLY: u32 = 0; +pub const O_WRONLY: u32 = 1; +pub const O_RDWR: u32 = 2; +pub const O_DIRECTORY: u32 = 65536; +pub const O_NOFOLLOW: u32 = 131072; +pub const O_NOATIME: u32 = 262144; +pub const O_CLOEXEC: u32 = 524288; +pub const O_PATH: u32 = 2097152; +pub const __O_TMPFILE: u32 = 4194304; +pub const O_TMPFILE: u32 = 4259840; +pub const O_TMPFILE_MASK: u32 = 4260096; +pub const O_NDELAY: u32 = 128; +pub const F_DUPFD: u32 = 0; +pub const F_GETFD: u32 = 1; +pub const F_SETFD: u32 = 2; +pub const F_GETFL: u32 = 3; +pub const F_SETFL: u32 = 4; +pub const F_SETSIG: u32 = 10; +pub const F_GETSIG: u32 = 11; +pub const F_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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_SIZEBITS: u32 = 13; +pub const _IOC_DIRBITS: u32 = 3; +pub const _IOC_NONE: u32 = 1; +pub const _IOC_READ: u32 = 2; +pub const _IOC_WRITE: u32 = 4; +pub const _IOC_NRBITS: u32 = 8; +pub const _IOC_TYPEBITS: u32 = 8; +pub const _IOC_NRMASK: u32 = 255; +pub const _IOC_TYPEMASK: u32 = 255; +pub const _IOC_SIZEMASK: u32 = 8191; +pub const _IOC_DIRMASK: u32 = 7; +pub const _IOC_NRSHIFT: u32 = 0; +pub const _IOC_TYPESHIFT: u32 = 8; +pub const _IOC_SIZESHIFT: u32 = 16; +pub const _IOC_DIRSHIFT: u32 = 29; +pub const IOC_IN: u32 = 2147483648; +pub const IOC_OUT: u32 = 1073741824; +pub const IOC_INOUT: u32 = 3221225472; +pub const IOCSIZE_MASK: u32 = 536805376; +pub const IOCSIZE_SHIFT: u32 = 16; +pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0; +pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1; +pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2; +pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3; +pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3; +pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16; +pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1; +pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4; +pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5; +pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6; +pub const FSCRYPT_MODE_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +pub const PROT_NONE: u32 = 0; +pub const PROT_READ: u32 = 1; +pub const PROT_WRITE: u32 = 2; +pub const PROT_EXEC: u32 = 4; +pub const PROT_SEM: u32 = 16; +pub const PROT_GROWSDOWN: u32 = 16777216; +pub const PROT_GROWSUP: u32 = 33554432; +pub const MAP_TYPE: u32 = 15; +pub const MAP_FIXED: u32 = 16; +pub const MAP_RENAME: u32 = 32; +pub const MAP_AUTOGROW: u32 = 64; +pub const MAP_LOCAL: u32 = 128; +pub const MAP_AUTORSRV: u32 = 256; +pub const MAP_NORESERVE: u32 = 1024; +pub const MAP_ANONYMOUS: u32 = 2048; +pub const MAP_GROWSDOWN: u32 = 4096; +pub const MAP_DENYWRITE: u32 = 8192; +pub const MAP_EXECUTABLE: u32 = 16384; +pub const MAP_LOCKED: u32 = 32768; +pub const MAP_POPULATE: u32 = 65536; +pub const MAP_NONBLOCK: u32 = 131072; +pub const MAP_STACK: u32 = 262144; +pub const MAP_HUGETLB: u32 = 524288; +pub const MAP_FIXED_NOREPLACE: u32 = 1048576; +pub const MS_ASYNC: u32 = 1; +pub const MS_INVALIDATE: u32 = 2; +pub const MS_SYNC: u32 = 4; +pub const MCL_CURRENT: u32 = 1; +pub const MCL_FUTURE: u32 = 2; +pub const MCL_ONFAULT: u32 = 4; +pub const MLOCK_ONFAULT: u32 = 1; +pub const MADV_NORMAL: u32 = 0; +pub const MADV_RANDOM: u32 = 1; +pub const MADV_SEQUENTIAL: u32 = 2; +pub const MADV_WILLNEED: u32 = 3; +pub const MADV_DONTNEED: u32 = 4; +pub const MADV_FREE: u32 = 8; +pub const MADV_REMOVE: u32 = 9; +pub const MADV_DONTFORK: u32 = 10; +pub const MADV_DOFORK: u32 = 11; +pub const MADV_MERGEABLE: u32 = 12; +pub const MADV_UNMERGEABLE: u32 = 13; +pub const MADV_HWPOISON: u32 = 100; +pub const MADV_HUGEPAGE: u32 = 14; +pub const MADV_NOHUGEPAGE: u32 = 15; +pub const MADV_DONTDUMP: u32 = 16; +pub const MADV_DODUMP: u32 = 17; +pub const MADV_WIPEONFORK: u32 = 18; +pub const MADV_KEEPONFORK: u32 = 19; +pub const MADV_COLD: u32 = 20; +pub const MADV_PAGEOUT: u32 = 21; +pub const MADV_POPULATE_READ: u32 = 22; +pub const MADV_POPULATE_WRITE: u32 = 23; +pub const MAP_FILE: u32 = 0; +pub const PKEY_DISABLE_ACCESS: u32 = 1; +pub const PKEY_DISABLE_WRITE: u32 = 2; +pub const PKEY_ACCESS_MASK: u32 = 3; +pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_NOFILE: u32 = 5; +pub const RLIMIT_AS: u32 = 6; +pub const RLIMIT_RSS: u32 = 7; +pub const RLIMIT_NPROC: u32 = 8; +pub const RLIMIT_MEMLOCK: u32 = 9; +pub const RLIMIT_CPU: u32 = 0; +pub const RLIMIT_FSIZE: u32 = 1; +pub const RLIMIT_DATA: u32 = 2; +pub const RLIMIT_STACK: u32 = 3; +pub const RLIMIT_CORE: u32 = 4; +pub const RLIMIT_LOCKS: u32 = 10; +pub const RLIMIT_SIGPENDING: u32 = 11; +pub const RLIMIT_MSGQUEUE: u32 = 12; +pub const RLIMIT_NICE: u32 = 13; +pub const RLIMIT_RTPRIO: u32 = 14; +pub const RLIMIT_RTTIME: u32 = 15; +pub const RLIM_NLIMITS: u32 = 16; +pub const RLIM_INFINITY: i32 = -1; +pub const CSIGNAL: u32 = 255; +pub const CLONE_VM: u32 = 256; +pub const CLONE_FS: u32 = 512; +pub const CLONE_FILES: u32 = 1024; +pub const CLONE_SIGHAND: u32 = 2048; +pub const CLONE_PIDFD: u32 = 4096; +pub const CLONE_PTRACE: u32 = 8192; +pub const CLONE_VFORK: u32 = 16384; +pub const CLONE_PARENT: u32 = 32768; +pub const CLONE_THREAD: u32 = 65536; +pub const CLONE_NEWNS: u32 = 131072; +pub const CLONE_SYSVSEM: u32 = 262144; +pub const CLONE_SETTLS: u32 = 524288; +pub const CLONE_PARENT_SETTID: u32 = 1048576; +pub const CLONE_CHILD_CLEARTID: u32 = 2097152; +pub const CLONE_DETACHED: u32 = 4194304; +pub const CLONE_UNTRACED: u32 = 8388608; +pub const CLONE_CHILD_SETTID: u32 = 16777216; +pub const CLONE_NEWCGROUP: u32 = 33554432; +pub const CLONE_NEWUTS: u32 = 67108864; +pub const CLONE_NEWIPC: u32 = 134217728; +pub const CLONE_NEWUSER: u32 = 268435456; +pub const CLONE_NEWPID: u32 = 536870912; +pub const CLONE_NEWNET: u32 = 1073741824; +pub const CLONE_IO: u32 = 2147483648; +pub const CLONE_CLEAR_SIGHAND: u64 = 4294967296; +pub const CLONE_INTO_CGROUP: u64 = 8589934592; +pub const CLONE_NEWTIME: u32 = 128; +pub const CLONE_ARGS_SIZE_VER0: u32 = 64; +pub const CLONE_ARGS_SIZE_VER1: u32 = 80; +pub const CLONE_ARGS_SIZE_VER2: u32 = 88; +pub const SCHED_NORMAL: u32 = 0; +pub const SCHED_FIFO: u32 = 1; +pub const SCHED_RR: u32 = 2; +pub const SCHED_BATCH: u32 = 3; +pub const SCHED_IDLE: u32 = 5; +pub const SCHED_DEADLINE: u32 = 6; +pub const SCHED_RESET_ON_FORK: u32 = 1073741824; +pub const SCHED_FLAG_RESET_ON_FORK: u32 = 1; +pub const SCHED_FLAG_RECLAIM: u32 = 2; +pub const SCHED_FLAG_DL_OVERRUN: u32 = 4; +pub const SCHED_FLAG_KEEP_POLICY: u32 = 8; +pub const SCHED_FLAG_KEEP_PARAMS: u32 = 16; +pub const SCHED_FLAG_UTIL_CLAMP_MIN: u32 = 32; +pub const SCHED_FLAG_UTIL_CLAMP_MAX: u32 = 64; +pub const SCHED_FLAG_KEEP_ALL: u32 = 24; +pub const SCHED_FLAG_UTIL_CLAMP: u32 = 96; +pub const SCHED_FLAG_ALL: u32 = 127; +pub const _NSIG: u32 = 128; +pub const SIGHUP: u32 = 1; +pub const SIGINT: u32 = 2; +pub const SIGQUIT: u32 = 3; +pub const SIGILL: u32 = 4; +pub const SIGTRAP: u32 = 5; +pub const SIGIOT: u32 = 6; +pub const SIGABRT: u32 = 6; +pub const SIGEMT: u32 = 7; +pub const SIGFPE: u32 = 8; +pub const SIGKILL: u32 = 9; +pub const SIGBUS: u32 = 10; +pub const SIGSEGV: u32 = 11; +pub const SIGSYS: u32 = 12; +pub const SIGPIPE: u32 = 13; +pub const SIGALRM: u32 = 14; +pub const SIGTERM: u32 = 15; +pub const SIGUSR1: u32 = 16; +pub const SIGUSR2: u32 = 17; +pub const SIGCHLD: u32 = 18; +pub const SIGCLD: u32 = 18; +pub const SIGPWR: u32 = 19; +pub const SIGWINCH: u32 = 20; +pub const SIGURG: u32 = 21; +pub const SIGIO: u32 = 22; +pub const SIGPOLL: u32 = 22; +pub const SIGSTOP: u32 = 23; +pub const SIGTSTP: u32 = 24; +pub const SIGCONT: u32 = 25; +pub const SIGTTIN: u32 = 26; +pub const SIGTTOU: u32 = 27; +pub const SIGVTALRM: u32 = 28; +pub const SIGPROF: u32 = 29; +pub const SIGXCPU: u32 = 30; +pub const SIGXFSZ: u32 = 31; +pub const SIGRTMIN: u32 = 32; +pub const SIGRTMAX: u32 = 128; +pub const SA_ONSTACK: u32 = 134217728; +pub const SA_RESETHAND: u32 = 2147483648; +pub const SA_RESTART: u32 = 268435456; +pub const SA_SIGINFO: u32 = 8; +pub const SA_NODEFER: u32 = 1073741824; +pub const SA_NOCLDWAIT: u32 = 65536; +pub const SA_NOCLDSTOP: u32 = 1; +pub const SA_NOMASK: u32 = 1073741824; +pub const SA_ONESHOT: u32 = 2147483648; +pub const MINSIGSTKSZ: u32 = 2048; +pub const SIGSTKSZ: u32 = 8192; +pub const SIG_BLOCK: u32 = 1; +pub const SIG_UNBLOCK: u32 = 2; +pub const SIG_SETMASK: u32 = 3; +pub const SA_UNSUPPORTED: u32 = 1024; +pub const SA_EXPOSE_TAGBITS: u32 = 2048; +pub const SI_MAX_SIZE: u32 = 128; +pub const SI_USER: u32 = 0; +pub const SI_KERNEL: u32 = 128; +pub const SI_QUEUE: i32 = -1; +pub const SI_TIMER: i32 = -2; +pub const SI_MESGQ: i32 = -3; +pub const SI_ASYNCIO: i32 = -4; +pub const SI_SIGIO: i32 = -5; +pub const SI_TKILL: i32 = -6; +pub const SI_DETHREAD: i32 = -7; +pub const SI_ASYNCNL: i32 = -60; +pub const ILL_ILLOPC: u32 = 1; +pub const ILL_ILLOPN: u32 = 2; +pub const ILL_ILLADR: u32 = 3; +pub const ILL_ILLTRP: u32 = 4; +pub const ILL_PRVOPC: u32 = 5; +pub const ILL_PRVREG: u32 = 6; +pub const ILL_COPROC: u32 = 7; +pub const ILL_BADSTK: u32 = 8; +pub const ILL_BADIADDR: u32 = 9; +pub const __ILL_BREAK: u32 = 10; +pub const __ILL_BNDMOD: u32 = 11; +pub const NSIGILL: u32 = 11; +pub const FPE_INTDIV: u32 = 1; +pub const FPE_INTOVF: u32 = 2; +pub const FPE_FLTDIV: u32 = 3; +pub const FPE_FLTOVF: u32 = 4; +pub const FPE_FLTUND: u32 = 5; +pub const FPE_FLTRES: u32 = 6; +pub const FPE_FLTINV: u32 = 7; +pub const FPE_FLTSUB: u32 = 8; +pub const __FPE_DECOVF: u32 = 9; +pub const __FPE_DECDIV: u32 = 10; +pub const __FPE_DECERR: u32 = 11; +pub const __FPE_INVASC: u32 = 12; +pub const __FPE_INVDEC: u32 = 13; +pub const FPE_FLTUNK: u32 = 14; +pub const FPE_CONDTRAP: u32 = 15; +pub const NSIGFPE: u32 = 15; +pub const SEGV_MAPERR: u32 = 1; +pub const SEGV_ACCERR: u32 = 2; +pub const SEGV_BNDERR: u32 = 3; +pub const SEGV_PKUERR: u32 = 4; +pub const SEGV_ACCADI: u32 = 5; +pub const SEGV_ADIDERR: u32 = 6; +pub const SEGV_ADIPERR: u32 = 7; +pub const SEGV_MTEAERR: u32 = 8; +pub const SEGV_MTESERR: u32 = 9; +pub const NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 TIOCPKT_DATA: u32 = 0; +pub const TIOCPKT_FLUSHREAD: u32 = 1; +pub const TIOCPKT_FLUSHWRITE: u32 = 2; +pub const TIOCPKT_STOP: u32 = 4; +pub const TIOCPKT_START: u32 = 8; +pub const TIOCPKT_NOSTOP: u32 = 16; +pub const TIOCPKT_DOSTOP: u32 = 32; +pub const TIOCPKT_IOCTL: u32 = 64; +pub const TIOCGLTC: u32 = 29812; +pub const TIOCSLTC: u32 = 29813; +pub const TIOCGETP: u32 = 29704; +pub const TIOCSETP: u32 = 29705; +pub const TIOCSETN: u32 = 29706; +pub const NCC: u32 = 8; +pub const TIOCM_LE: u32 = 1; +pub const TIOCM_DTR: u32 = 2; +pub const TIOCM_RTS: u32 = 4; +pub const TIOCM_ST: u32 = 16; +pub const TIOCM_SR: u32 = 32; +pub const TIOCM_CTS: u32 = 64; +pub const TIOCM_CAR: u32 = 256; +pub const TIOCM_CD: u32 = 256; +pub const TIOCM_RNG: u32 = 512; +pub const TIOCM_RI: u32 = 512; +pub const TIOCM_DSR: u32 = 1024; +pub const TIOCM_OUT1: u32 = 8192; +pub const TIOCM_OUT2: u32 = 16384; +pub const TIOCM_LOOP: u32 = 32768; +pub const UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_daddr_t = crate::ctypes::c_long; +pub type __kernel_long_t = crate::ctypes::c_long; +pub type __kernel_ulong_t = crate::ctypes::c_ulong; +pub type __kernel_ino_t = __kernel_ulong_t; +pub type __kernel_mode_t = crate::ctypes::c_uint; +pub type __kernel_pid_t = crate::ctypes::c_int; +pub type __kernel_ipc_pid_t = crate::ctypes::c_int; +pub type __kernel_uid_t = crate::ctypes::c_uint; +pub type __kernel_gid_t = crate::ctypes::c_uint; +pub type __kernel_suseconds_t = __kernel_long_t; +pub type __kernel_uid32_t = crate::ctypes::c_uint; +pub type __kernel_gid32_t = crate::ctypes::c_uint; +pub type __kernel_old_uid_t = __kernel_uid_t; +pub type __kernel_old_gid_t = __kernel_gid_t; +pub type __kernel_old_dev_t = crate::ctypes::c_uint; +pub type __kernel_size_t = __kernel_ulong_t; +pub type __kernel_ssize_t = __kernel_long_t; +pub type __kernel_ptrdiff_t = __kernel_long_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 2usize], +} +pub type old_sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +pub ss_flags: crate::ctypes::c_int, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termios { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termios2 { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +pub c_ispeed: speed_t, +pub c_ospeed: speed_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ktermios { +pub c_iflag: tcflag_t, +pub c_oflag: tcflag_t, +pub c_cflag: tcflag_t, +pub c_lflag: tcflag_t, +pub c_line: cc_t, +pub c_cc: [cc_t; 23usize], +pub c_ispeed: speed_t, +pub c_ospeed: speed_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sgttyb { +pub sg_ispeed: crate::ctypes::c_char, +pub sg_ospeed: crate::ctypes::c_char, +pub sg_erase: crate::ctypes::c_char, +pub sg_kill: crate::ctypes::c_char, +pub sg_flags: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tchars { +pub t_intrc: crate::ctypes::c_char, +pub t_quitc: crate::ctypes::c_char, +pub t_startc: crate::ctypes::c_char, +pub t_stopc: crate::ctypes::c_char, +pub t_eofc: crate::ctypes::c_char, +pub t_brkc: crate::ctypes::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ltchars { +pub t_suspc: crate::ctypes::c_char, +pub t_dsuspc: crate::ctypes::c_char, +pub t_rprntc: crate::ctypes::c_char, +pub t_flushc: crate::ctypes::c_char, +pub t_werasc: crate::ctypes::c_char, +pub t_lnextc: crate::ctypes::c_char, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct winsize { +pub ws_row: crate::ctypes::c_ushort, +pub ws_col: crate::ctypes::c_ushort, +pub ws_xpixel: crate::ctypes::c_ushort, +pub ws_ypixel: crate::ctypes::c_ushort, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct termio { +pub c_iflag: crate::ctypes::c_ushort, +pub c_oflag: crate::ctypes::c_ushort, +pub c_cflag: crate::ctypes::c_ushort, +pub c_lflag: crate::ctypes::c_ushort, +pub c_line: crate::ctypes::c_char, +pub c_cc: [crate::ctypes::c_uchar; 23usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[repr(C)] +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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_uid_t, +pub st_gid: __kernel_gid_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, +} +pub type fsid_t = __kernel_fsid_t; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1550 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 VIDIOC_SUBDEV_QUERYSTD: u32 = 1074288191; +pub const AUTOFS_DEV_IOCTL_CLOSEMOUNT: u32 = 3222836085; +pub const LIRC_SET_SEND_CARRIER: u32 = 2147772691; +pub const AUTOFS_IOC_PROTOSUBVER: u32 = 1074041703; +pub const PTP_SYS_OFFSET_PRECISE: u32 = 3225435400; +pub const FSI_SCOM_WRITE: u32 = 3223352066; +pub const ATM_GETCIRANGE: u32 = 2148557194; +pub const DMA_BUF_SET_NAME_B: u32 = 2148033025; +pub const RIO_CM_EP_GET_LIST_SIZE: u32 = 3221512961; +pub const TUNSETPERSIST: u32 = 2147767499; +pub const FS_IOC_GET_ENCRYPTION_POLICY: u32 = 2148296213; +pub const CEC_RECEIVE: u32 = 3224920326; +pub const MGSL_IOCGPARAMS: u32 = 1076915457; +pub const ENI_SETMULT: u32 = 2148557159; +pub const RIO_GET_EVENT_MASK: u32 = 1074031886; +pub const LIRC_GET_MAX_TIMEOUT: u32 = 1074030857; +pub const KVM_SET_BOOT_CPU_ID: u32 = 536915576; +pub const KVM_SET_MP_STATE: u32 = 2147790489; +pub const KVM_GET_MP_STATE: u32 = 1074048664; +pub const KVM_SET_MEMORY_REGION: u32 = 2149101120; +pub const KVM_GET_API_VERSION: u32 = 536915456; +pub const KVM_S390_GET_SKEYS: u32 = 2151722674; +pub const KVM_SET_ONE_REG: u32 = 2148576940; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 2149625414; +pub const KVM_S390_INTERRUPT: u32 = 2148576916; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 1073786508; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 2148576884; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 1074835131; +pub const KVM_S390_UCAS_MAP: u32 = 2149101136; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 2151722660; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221794490; +pub const KVM_CREATE_PIT2: u32 = 2151722615; +pub const KVM_S390_VCPU_FAULT: u32 = 2148052562; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 2148576871; +pub const KVM_SET_VAPIC_ADDR: u32 = 2148052627; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 2148576918; +pub const KVM_X86_SETUP_MCE: u32 = 2148052636; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 2151722610; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 2152246985; +pub const KVM_GET_CLOCK: u32 = 1076932220; +pub const KVM_SET_FPU: u32 = 2147528333; +pub const KVM_KVMCLOCK_CTRL: u32 = 536915629; +pub const KVM_PPC_GET_PVINFO: u32 = 2155916961; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 1074310813; +pub const KVM_S390_GET_IRQ_STATE: u32 = 2149625526; +pub const KVM_GET_DEVICE_ATTR: u32 = 2149101282; +pub const KVM_S390_INITIAL_RESET: u32 = 536915607; +pub const KVM_SET_REGS: u32 = 2165878402; +pub const KVM_GET_TSC_KHZ: u32 = 536915619; +pub const KVM_CHECK_EXTENSION: u32 = 536915459; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 1074835118; +pub const KVM_GET_DIRTY_LOG: u32 = 2148576834; +pub const KVM_S390_SET_IRQ_STATE: u32 = 2149625525; +pub const KVM_S390_NORMAL_RESET: u32 = 536915651; +pub const KVM_SET_SIGNAL_MASK: u32 = 2147790475; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 2152246987; +pub const KVM_SET_GSI_ROUTING: u32 = 2148052586; +pub const KVM_CREATE_VCPU: u32 = 536915521; +pub const KVM_S390_UCAS_UNMAP: u32 = 2149101137; +pub const KVM_S390_STORE_STATUS: u32 = 2148052629; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 2148576872; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 2151722608; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 536915462; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 2148576939; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 2148576939; +pub const KVM_DIRTY_TLB: u32 = 2148576938; +pub const KVM_NMI: u32 = 536915610; +pub const KVM_HYPERV_EVENTFD: u32 = 2149101245; +pub const KVM_S390_MEM_OP: u32 = 2151722673; +pub const KVM_PPC_SVM_OFF: u32 = 536915635; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 1074835117; +pub const KVM_INTERRUPT: u32 = 2147790470; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 1073786499; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 2148052552; +pub const KVM_GET_REGS: u32 = 1092136577; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 536915552; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 1077980777; +pub const KVM_SET_NR_MMU_PAGES: u32 = 536915524; +pub const KVM_IOEVENTFD: u32 = 2151722617; +pub const KVM_RUN: u32 = 536915584; +pub const KVM_S390_SET_SKEYS: u32 = 2151722675; +pub const KVM_SET_DEVICE_ATTR: u32 = 2149101281; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 2151722613; +pub const KVM_SMI: u32 = 536915639; +pub const KVM_SET_TSS_ADDR: u32 = 536915527; +pub const KVM_GET_NR_MMU_PAGES: u32 = 536915525; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 536915569; +pub const KVM_HAS_DEVICE_ATTR: u32 = 2149101283; +pub const KVM_IRQFD: u32 = 2149625462; +pub const KVM_S390_SET_CMMA_BITS: u32 = 2149625529; +pub const KVM_SET_IRQCHIP: u32 = 1107865187; +pub const KVM_SIGNAL_MSI: u32 = 2149625509; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 536915460; +pub const KVM_CREATE_VM: u32 = 536915457; +pub const KVM_S390_CLEAR_RESET: u32 = 536915652; +pub const KVM_RESET_DIRTY_RINGS: u32 = 536915655; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 2148052595; +pub const KVM_CREATE_PIT: u32 = 536915556; +pub const KVM_SET_GUEST_DEBUG: u32 = 2148052635; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 2147790530; +pub const KVM_SET_CLOCK: u32 = 2150674043; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 1112583846; +pub const KVM_SET_TSC_KHZ: u32 = 536915618; +pub const KVM_S390_IRQ: u32 = 2152246964; +pub const KVM_ENABLE_CAP: u32 = 2154344099; +pub const KVM_IRQ_LINE: u32 = 2148052577; +pub const KVM_SET_SREGS: u32 = 2147528324; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 1074835132; +pub const 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 SIOCSNETADDR: u32 = 2147781088; +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 OSIOCSNETADDR: u32 = 2147781088; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 536933637; +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 SIOCGNETADDR: u32 = 1074039265; +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 OSIOCGNETADDR: u32 = 1074039265; +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 CM_IOSDBGLVL: u32 = 2148033530; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221775105; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/mips64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2692 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __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 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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_daddr_t = crate::ctypes::c_long; +pub type __kernel_long_t = crate::ctypes::c_long; +pub type __kernel_ulong_t = crate::ctypes::c_ulong; +pub type __kernel_ino_t = __kernel_ulong_t; +pub type __kernel_mode_t = crate::ctypes::c_uint; +pub type __kernel_pid_t = crate::ctypes::c_int; +pub type __kernel_ipc_pid_t = crate::ctypes::c_int; +pub type __kernel_uid_t = crate::ctypes::c_uint; +pub type __kernel_gid_t = crate::ctypes::c_uint; +pub type __kernel_suseconds_t = __kernel_long_t; +pub type __kernel_uid32_t = crate::ctypes::c_uint; +pub type __kernel_gid32_t = crate::ctypes::c_uint; +pub type __kernel_old_uid_t = __kernel_uid_t; +pub type __kernel_old_gid_t = __kernel_gid_t; +pub type __kernel_old_dev_t = crate::ctypes::c_uint; +pub type __kernel_size_t = __kernel_ulong_t; +pub type __kernel_ssize_t = __kernel_long_t; +pub type __kernel_ptrdiff_t = __kernel_long_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5149 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_VECTOR_SIZE_ARCH: u32 = 14; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4210752; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_SIZEBITS: u32 = 13; +pub const _IOC_DIRBITS: u32 = 3; +pub const _IOC_NONE: u32 = 1; +pub const _IOC_READ: u32 = 2; +pub const _IOC_WRITE: u32 = 4; +pub const _IOC_NRBITS: u32 = 8; +pub const _IOC_TYPEBITS: u32 = 8; +pub const _IOC_NRMASK: u32 = 255; +pub const _IOC_TYPEMASK: u32 = 255; +pub const _IOC_SIZEMASK: u32 = 8191; +pub const _IOC_DIRMASK: u32 = 7; +pub const _IOC_NRSHIFT: u32 = 0; +pub const _IOC_TYPESHIFT: u32 = 8; +pub const _IOC_SIZESHIFT: u32 = 16; +pub const _IOC_DIRSHIFT: u32 = 29; +pub const IOC_IN: u32 = 2147483648; +pub const IOC_OUT: u32 = 1073741824; +pub const IOC_INOUT: u32 = 3221225472; +pub const IOCSIZE_MASK: u32 = 536805376; +pub const IOCSIZE_SHIFT: u32 = 16; +pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0; +pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1; +pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2; +pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3; +pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3; +pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16; +pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1; +pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4; +pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5; +pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6; +pub const FSCRYPT_MODE_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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_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 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 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 IXON: u32 = 512; +pub const IXOFF: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IUCLC: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const ONLCR: u32 = 2; +pub const OLCUC: u32 = 4; +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 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 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 CBAUDEX: u32 = 0; +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 BOTHER: u32 = 31; +pub const CIBAUD: u32 = 16711680; +pub const IBSHIFT: u32 = 16; +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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +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 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 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 UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type old_sigset_t = crate::ctypes::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 2usize], +} +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[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(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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_uid_t, +pub st_gid: __kernel_gid_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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1447 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 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 SIOCSNETADDR: u32 = 2147781088; +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 OSIOCSNETADDR: u32 = 2147781088; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 536933637; +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 SIOCGNETADDR: u32 = 1074039265; +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 OSIOCGNETADDR: u32 = 1074039265; +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 CM_IOSDBGLVL: u32 = 2148033530; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221775105; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2689 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5107 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_VECTOR_SIZE_ARCH: u32 = 14; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4210752; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_SIZEBITS: u32 = 13; +pub const _IOC_DIRBITS: u32 = 3; +pub const _IOC_NONE: u32 = 1; +pub const _IOC_READ: u32 = 2; +pub const _IOC_WRITE: u32 = 4; +pub const _IOC_NRBITS: u32 = 8; +pub const _IOC_TYPEBITS: u32 = 8; +pub const _IOC_NRMASK: u32 = 255; +pub const _IOC_TYPEMASK: u32 = 255; +pub const _IOC_SIZEMASK: u32 = 8191; +pub const _IOC_DIRMASK: u32 = 7; +pub const _IOC_NRSHIFT: u32 = 0; +pub const _IOC_TYPESHIFT: u32 = 8; +pub const _IOC_SIZESHIFT: u32 = 16; +pub const _IOC_DIRSHIFT: u32 = 29; +pub const IOC_IN: u32 = 2147483648; +pub const IOC_OUT: u32 = 1073741824; +pub const IOC_INOUT: u32 = 3221225472; +pub const IOCSIZE_MASK: u32 = 536805376; +pub const IOCSIZE_SHIFT: u32 = 16; +pub const FSCRYPT_POLICY_FLAGS_PAD_4: u32 = 0; +pub const FSCRYPT_POLICY_FLAGS_PAD_8: u32 = 1; +pub const FSCRYPT_POLICY_FLAGS_PAD_16: u32 = 2; +pub const FSCRYPT_POLICY_FLAGS_PAD_32: u32 = 3; +pub const FSCRYPT_POLICY_FLAGS_PAD_MASK: u32 = 3; +pub const FSCRYPT_POLICY_FLAG_DIRECT_KEY: u32 = 4; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64: u32 = 8; +pub const FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32: u32 = 16; +pub const FSCRYPT_MODE_AES_256_XTS: u32 = 1; +pub const FSCRYPT_MODE_AES_256_CTS: u32 = 4; +pub const FSCRYPT_MODE_AES_128_CBC: u32 = 5; +pub const FSCRYPT_MODE_AES_128_CTS: u32 = 6; +pub const FSCRYPT_MODE_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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_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 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 = 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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 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 IXON: u32 = 512; +pub const IXOFF: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IUCLC: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const ONLCR: u32 = 2; +pub const OLCUC: u32 = 4; +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 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 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 CBAUDEX: u32 = 0; +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 BOTHER: u32 = 31; +pub const CIBAUD: u32 = 16711680; +pub const IBSHIFT: u32 = 16; +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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +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 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 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 UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type old_sigset_t = crate::ctypes::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 1usize], +} +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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_uid_t, +pub st_gid: __kernel_gid_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], +} +pub type __fsword_t = __kernel_long_t; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1447 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 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 SIOCSNETADDR: u32 = 2147781088; +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 OSIOCSNETADDR: u32 = 2147781088; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 536933637; +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 SIOCGNETADDR: u32 = 1074039265; +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 OSIOCGNETADDR: u32 = 1074039265; +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 CM_IOSDBGLVL: u32 = 2148033530; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221775105; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/powerpc64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2689 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4945 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_VECTOR_SIZE_ARCH: u32 = 7; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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 __NR3264_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 __NR3264_statfs: u32 = 43; +pub const __NR3264_fstatfs: u32 = 44; +pub const __NR3264_truncate: u32 = 45; +pub const __NR3264_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 __NR3264_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 __NR3264_sendfile: 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 __NR3264_mmap: u32 = 222; +pub const __NR3264_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_arch_specific_syscall: u32 = 244; +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_process_mrelease: u32 = 448; +pub const __NR_futex_waitv: u32 = 449; +pub const __NR_set_mempolicy_home_node: u32 = 450; +pub const __NR_syscalls: u32 = 451; +pub const __NR_fcntl64: u32 = 25; +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_llseek: u32 = 62; +pub const __NR_sendfile64: u32 = 71; +pub const __NR_mmap2: u32 = 222; +pub const __NR_fadvise64_64: u32 = 223; +pub const __NR_riscv_flush_icache: u32 = 259; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_long_t = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 2usize], +} +pub type old_sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv32/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2682 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_long_t = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4941 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_VECTOR_SIZE_ARCH: u32 = 7; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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 __NR3264_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 __NR3264_statfs: u32 = 43; +pub const __NR3264_fstatfs: u32 = 44; +pub const __NR3264_truncate: u32 = 45; +pub const __NR3264_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 __NR3264_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 __NR3264_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 __NR3264_fstatat: u32 = 79; +pub const __NR3264_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 __NR3264_mmap: u32 = 222; +pub const __NR3264_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_arch_specific_syscall: u32 = 244; +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_syscalls: u32 = 451; +pub const __NR_fcntl: u32 = 25; +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_lseek: u32 = 62; +pub const __NR_sendfile: u32 = 71; +pub const __NR_newfstatat: u32 = 79; +pub const __NR_fstat: u32 = 80; +pub const __NR_mmap: u32 = 222; +pub const __NR_fadvise64: u32 = 223; +pub const __NR_riscv_flush_icache: u32 = 259; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_long_t = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigset_t { +pub sig: [crate::ctypes::c_ulong; 1usize], +} +pub type old_sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __kernel_long_t; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1452 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/riscv64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2682 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_long_t = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4984 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 6; +pub const POSIX_FADV_NOREUSE: u32 = 7; +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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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_process_mrelease: u32 = 448; +pub const __NR_futex_waitv: u32 = 449; +pub const __NR_set_mempolicy_home_node: u32 = 450; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct pt_regs { +_unused: [u8; 0], +} +pub type sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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, +pub sa_mask: sigset_t, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigaction__bindgen_ty_1 { +pub _sa_handler: __sighandler_t, +pub _sa_sigaction: ::core::option::Option, +} +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type fsid_t = __kernel_fsid_t; +#[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; 4usize], +} +#[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; 4usize], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/s390x/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2691 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[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], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,137 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5326 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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 O_TMPFILE_MASK: u32 = 33620480; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 4194304; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = 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__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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_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 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_NOFILE: u32 = 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_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 = 32; +pub const NSIG: u32 = 32; +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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 NCC: u32 = 8; +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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 TCSANOW: u32 = 0; +pub const TCSADRAIN: u32 = 1; +pub const TCSAFLUSH: u32 = 2; +pub const UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 KERN_FEATURE_MIXED_MODE_STACK: u32 = 1; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 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 fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type sigset_t = crate::ctypes::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __new_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, +} +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __new_sigaction { +pub sa_handler: __sighandler_t, +pub sa_flags: crate::ctypes::c_ulong, +pub sa_restorer: __sigrestore_t, +pub sa_mask: __new_sigset_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigaction { +pub sa_handler: __sighandler_t, +pub sa_mask: sigset_t, +pub sa_flags: crate::ctypes::c_ulong, +pub sa_restorer: ::core::option::Option, +} +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_ulong; +#[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 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 iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,137 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5291 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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 O_TMPFILE_MASK: u32 = 33620480; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 4194304; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = 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__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +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 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_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 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_NOFILE: u32 = 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_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 = 32; +pub const NSIG: u32 = 32; +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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 NCC: u32 = 8; +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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 TCSANOW: u32 = 0; +pub const TCSADRAIN: u32 = 1; +pub const TCSAFLUSH: u32 = 2; +pub const UIO_FASTIOV: u32 = 8; +pub const UIO_MAXIOV: u32 = 1024; +pub const UNIX_PATH_MAX: u32 = 108; +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 KERN_FEATURE_MIXED_MODE_STACK: u32 = 1; +pub const __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_suseconds_t, +} +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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 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 fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +impl iphdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn ihl(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_ihl(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, ihl: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let ihl: u8 = unsafe { ::core::mem::transmute(ihl) }; +ihl as u64 +}); +__bindgen_bitfield_unit +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +impl ipv6hdr { +#[inline] +pub fn version(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_version(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn priority(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_priority(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(version: __u8, priority: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let version: u8 = unsafe { ::core::mem::transmute(version) }; +version as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let priority: u8 = unsafe { ::core::mem::transmute(priority) }; +priority as u64 +}); +__bindgen_bitfield_unit +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type sigset_t = crate::ctypes::c_ulong; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __new_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, +} +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __new_sigaction { +pub sa_handler: __sighandler_t, +pub sa_flags: crate::ctypes::c_ulong, +pub sa_restorer: __sigrestore_t, +pub sa_mask: __new_sigset_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sigaction { +pub sa_handler: __sighandler_t, +pub sa_mask: sigset_t, +pub sa_flags: crate::ctypes::c_ulong, +pub sa_restorer: ::core::option::Option, +} +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +impl tcphdr { +#[inline] +pub fn doff(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) } +} +#[inline] +pub fn set_doff(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn res1(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) } +} +#[inline] +pub fn set_res1(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn cwr(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) } +} +#[inline] +pub fn set_cwr(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn ece(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u16) } +} +#[inline] +pub fn set_ece(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 1u8, val as u64) +} +} +#[inline] +pub fn urg(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u16) } +} +#[inline] +pub fn set_urg(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(10usize, 1u8, val as u64) +} +} +#[inline] +pub fn ack(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u16) } +} +#[inline] +pub fn set_ack(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(11usize, 1u8, val as u64) +} +} +#[inline] +pub fn psh(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) } +} +#[inline] +pub fn set_psh(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(12usize, 1u8, val as u64) +} +} +#[inline] +pub fn rst(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u16) } +} +#[inline] +pub fn set_rst(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(13usize, 1u8, val as u64) +} +} +#[inline] +pub fn syn(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u16) } +} +#[inline] +pub fn set_syn(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(14usize, 1u8, val as u64) +} +} +#[inline] +pub fn fin(&self) -> __u16 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) } +} +#[inline] +pub fn set_fin(&mut self, val: __u16) { +unsafe { +let val: u16 = ::core::mem::transmute(val); +self._bitfield_1.set(15usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(doff: __u16, res1: __u16, cwr: __u16, ece: __u16, urg: __u16, ack: __u16, psh: __u16, rst: __u16, syn: __u16, fin: __u16) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let doff: u16 = unsafe { ::core::mem::transmute(doff) }; +doff as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let res1: u16 = unsafe { ::core::mem::transmute(res1) }; +res1 as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let cwr: u16 = unsafe { ::core::mem::transmute(cwr) }; +cwr as u64 +}); +__bindgen_bitfield_unit.set(9usize, 1u8, { +let ece: u16 = unsafe { ::core::mem::transmute(ece) }; +ece as u64 +}); +__bindgen_bitfield_unit.set(10usize, 1u8, { +let urg: u16 = unsafe { ::core::mem::transmute(urg) }; +urg as u64 +}); +__bindgen_bitfield_unit.set(11usize, 1u8, { +let ack: u16 = unsafe { ::core::mem::transmute(ack) }; +ack as u64 +}); +__bindgen_bitfield_unit.set(12usize, 1u8, { +let psh: u16 = unsafe { ::core::mem::transmute(psh) }; +psh as u64 +}); +__bindgen_bitfield_unit.set(13usize, 1u8, { +let rst: u16 = unsafe { ::core::mem::transmute(rst) }; +rst as u64 +}); +__bindgen_bitfield_unit.set(14usize, 1u8, { +let syn: u16 = unsafe { ::core::mem::transmute(syn) }; +syn as u64 +}); +__bindgen_bitfield_unit.set(15usize, 1u8, { +let fin: u16 = unsafe { ::core::mem::transmute(fin) }; +fin as u64 +}); +__bindgen_bitfield_unit +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 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 iovec { +pub iov_base: *mut crate::ctypes::c_void, +pub iov_len: __kernel_size_t, +} +#[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(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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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_uid_t, +pub st_gid: __kernel_gid_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], +} +pub type __fsword_t = __kernel_long_t; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/sparc64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2689 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_suseconds_t, +} +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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4998 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +pub const MAP_32BIT: u32 = 64; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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_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_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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 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 fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +pub type __kernel_si_clock_t = crate::ctypes::c_longlong; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn 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 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 +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1560 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 KVM_SET_BOOT_CPU_ID: u32 = 44664; +pub const KVM_SET_MP_STATE: u32 = 1074048665; +pub const KVM_GET_MP_STATE: u32 = 2147790488; +pub const KVM_SET_MEMORY_REGION: u32 = 1075359296; +pub const KVM_GET_API_VERSION: u32 = 44544; +pub const KVM_S390_GET_SKEYS: u32 = 1077980850; +pub const KVM_SET_ONE_REG: u32 = 1074835116; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 1075883590; +pub const KVM_S390_INTERRUPT: u32 = 1074835092; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 2174791308; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 1074835060; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 2148576955; +pub const KVM_S390_UCAS_MAP: u32 = 1075359312; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 1077980836; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221794490; +pub const KVM_CREATE_PIT2: u32 = 1077980791; +pub const KVM_S390_VCPU_FAULT: u32 = 1074310738; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 1074835047; +pub const KVM_SET_VAPIC_ADDR: u32 = 1074310803; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 1074835094; +pub const KVM_X86_SETUP_MCE: u32 = 1074310812; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 1077980786; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 1078505161; +pub const KVM_GET_CLOCK: u32 = 2150674044; +pub const KVM_SET_FPU: u32 = 1101049485; +pub const KVM_KVMCLOCK_CTRL: u32 = 44717; +pub const KVM_GET_SREGS2: u32 = 2168499916; +pub const KVM_PPC_GET_PVINFO: u32 = 1082175137; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 2148052637; +pub const KVM_S390_GET_IRQ_STATE: u32 = 1075883702; +pub const KVM_GET_DEVICE_ATTR: u32 = 1075359458; +pub const KVM_S390_INITIAL_RESET: u32 = 44695; +pub const KVM_SET_REGS: u32 = 1083223682; +pub const KVM_GET_TSC_KHZ: u32 = 44707; +pub const KVM_CHECK_EXTENSION: u32 = 44547; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 2148576942; +pub const KVM_GET_DIRTY_LOG: u32 = 1074835010; +pub const KVM_S390_SET_IRQ_STATE: u32 = 1075883701; +pub const KVM_S390_NORMAL_RESET: u32 = 44739; +pub const KVM_SET_SIGNAL_MASK: u32 = 1074048651; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 1078505163; +pub const KVM_SET_GSI_ROUTING: u32 = 1074310762; +pub const KVM_CREATE_VCPU: u32 = 44609; +pub const KVM_S390_UCAS_UNMAP: u32 = 1075359313; +pub const KVM_S390_STORE_STATUS: u32 = 1074310805; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 1074835048; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 1077980784; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 44550; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 1074835115; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 1074835115; +pub const KVM_DIRTY_TLB: u32 = 1074835114; +pub const KVM_NMI: u32 = 44698; +pub const KVM_HYPERV_EVENTFD: u32 = 1075359421; +pub const KVM_S390_MEM_OP: u32 = 1077980849; +pub const KVM_PPC_SVM_OFF: u32 = 44723; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 2148576941; +pub const KVM_INTERRUPT: u32 = 1074048646; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 2167975555; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 1074310728; +pub const KVM_GET_REGS: u32 = 2156965505; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 44640; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 2151722601; +pub const KVM_SET_NR_MMU_PAGES: u32 = 44612; +pub const KVM_IOEVENTFD: u32 = 1077980793; +pub const KVM_RUN: u32 = 44672; +pub const KVM_S390_SET_SKEYS: u32 = 1077980851; +pub const KVM_SET_DEVICE_ATTR: u32 = 1075359457; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 1077980789; +pub const KVM_SMI: u32 = 44727; +pub const KVM_SET_TSS_ADDR: u32 = 44615; +pub const KVM_GET_NR_MMU_PAGES: u32 = 44613; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 44657; +pub const KVM_HAS_DEVICE_ATTR: u32 = 1075359459; +pub const KVM_IRQFD: u32 = 1075883638; +pub const KVM_S390_SET_CMMA_BITS: u32 = 1075883705; +pub const KVM_SET_IRQCHIP: u32 = 2181607011; +pub const KVM_SET_SREGS2: u32 = 1094758093; +pub const KVM_SIGNAL_MSI: u32 = 1075883685; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 44548; +pub const KVM_CREATE_VM: u32 = 44545; +pub const KVM_S390_CLEAR_RESET: u32 = 44740; +pub const KVM_RESET_DIRTY_RINGS: u32 = 44743; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 1074310771; +pub const KVM_CREATE_PIT: u32 = 44644; +pub const KVM_SET_GUEST_DEBUG: u32 = 1078505115; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 1074048706; +pub const KVM_SET_CLOCK: u32 = 1076932219; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 2186325670; +pub const KVM_SET_TSC_KHZ: u32 = 44706; +pub const KVM_S390_IRQ: u32 = 1078505140; +pub const KVM_ENABLE_CAP: u32 = 1080602275; +pub const KVM_IRQ_LINE: u32 = 1074310753; +pub const KVM_SET_SREGS: u32 = 1094233732; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 2148576956; +pub const KVM_GET_STATS_FD: u32 = 44750; +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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x32/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5098 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +pub const MAP_32BIT: u32 = 64; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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 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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +pub const STAT64_HAS_BROKEN_ST_INO: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 f_owner_ex { +pub type_: crate::ctypes::c_int, +pub pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_off_t, +pub l_len: __kernel_off_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct flock64 { +pub l_type: crate::ctypes::c_short, +pub l_whence: crate::ctypes::c_short, +pub l_start: __kernel_loff_t, +pub l_len: __kernel_loff_t, +pub l_pid: __kernel_pid_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct open_how { +pub flags: __u64, +pub mode: __u64, +pub resolve: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct epoll_event { +pub events: __poll_t, +pub data: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [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(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[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, +} +pub type sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigaction__bindgen_ty_1 { +pub _sa_handler: __sighandler_t, +pub _sa_sigaction: ::core::option::Option, +} +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[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 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[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)] +#[repr(align(8))] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __u32; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(seg_32bit: crate::ctypes::c_uint, contents: crate::ctypes::c_uint, read_exec_only: crate::ctypes::c_uint, limit_in_pages: crate::ctypes::c_uint, seg_not_present: crate::ctypes::c_uint, useable: crate::ctypes::c_uint) -> __BindgenBitfieldUnit<[u8; 1usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 1u8, { +let seg_32bit: u32 = unsafe { ::core::mem::transmute(seg_32bit) }; +seg_32bit as u64 +}); +__bindgen_bitfield_unit.set(1usize, 2u8, { +let contents: u32 = unsafe { ::core::mem::transmute(contents) }; +contents as u64 +}); +__bindgen_bitfield_unit.set(3usize, 1u8, { +let read_exec_only: u32 = unsafe { ::core::mem::transmute(read_exec_only) }; +read_exec_only as u64 +}); +__bindgen_bitfield_unit.set(4usize, 1u8, { +let limit_in_pages: u32 = unsafe { ::core::mem::transmute(limit_in_pages) }; +limit_in_pages as u64 +}); +__bindgen_bitfield_unit.set(5usize, 1u8, { +let seg_not_present: u32 = unsafe { ::core::mem::transmute(seg_not_present) }; +seg_not_present as u64 +}); +__bindgen_bitfield_unit.set(6usize, 1u8, { +let useable: u32 = unsafe { ::core::mem::transmute(useable) }; +useable as u64 +}); +__bindgen_bitfield_unit +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1556 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 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 KVM_SET_BOOT_CPU_ID: u32 = 44664; +pub const KVM_SET_MP_STATE: u32 = 1074048665; +pub const KVM_GET_MP_STATE: u32 = 2147790488; +pub const KVM_SET_MEMORY_REGION: u32 = 1075359296; +pub const KVM_GET_API_VERSION: u32 = 44544; +pub const KVM_S390_GET_SKEYS: u32 = 1077980850; +pub const KVM_SET_ONE_REG: u32 = 1074835116; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 1075883590; +pub const KVM_S390_INTERRUPT: u32 = 1074835092; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 2174791308; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 1074835060; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 2148576955; +pub const KVM_S390_UCAS_MAP: u32 = 1075359312; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 1077980836; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221532346; +pub const KVM_CREATE_PIT2: u32 = 1077980791; +pub const KVM_S390_VCPU_FAULT: u32 = 1074048594; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 1074835047; +pub const KVM_SET_VAPIC_ADDR: u32 = 1074310803; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 1074835094; +pub const KVM_X86_SETUP_MCE: u32 = 1074310812; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 1077980786; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 1078505161; +pub const KVM_GET_CLOCK: u32 = 2150674044; +pub const KVM_SET_FPU: u32 = 1101049485; +pub const KVM_KVMCLOCK_CTRL: u32 = 44717; +pub const KVM_PPC_GET_PVINFO: u32 = 1082175137; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 2148052637; +pub const KVM_S390_GET_IRQ_STATE: u32 = 1075883702; +pub const KVM_GET_DEVICE_ATTR: u32 = 1075359458; +pub const KVM_S390_INITIAL_RESET: u32 = 44695; +pub const KVM_SET_REGS: u32 = 1083223682; +pub const KVM_GET_TSC_KHZ: u32 = 44707; +pub const KVM_CHECK_EXTENSION: u32 = 44547; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 2148576942; +pub const KVM_GET_DIRTY_LOG: u32 = 1074835010; +pub const KVM_S390_SET_IRQ_STATE: u32 = 1075883701; +pub const KVM_S390_NORMAL_RESET: u32 = 44739; +pub const KVM_SET_SIGNAL_MASK: u32 = 1074048651; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 1078505163; +pub const KVM_SET_GSI_ROUTING: u32 = 1074310762; +pub const KVM_CREATE_VCPU: u32 = 44609; +pub const KVM_S390_UCAS_UNMAP: u32 = 1075359313; +pub const KVM_S390_STORE_STATUS: u32 = 1074048661; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 1074835048; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 1077980784; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 44550; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 1074835115; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 1074835115; +pub const KVM_DIRTY_TLB: u32 = 1074572970; +pub const KVM_NMI: u32 = 44698; +pub const KVM_HYPERV_EVENTFD: u32 = 1075359421; +pub const KVM_S390_MEM_OP: u32 = 1077980849; +pub const KVM_PPC_SVM_OFF: u32 = 44723; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 2148576941; +pub const KVM_INTERRUPT: u32 = 1074048646; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 2167975555; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 1074310728; +pub const KVM_GET_REGS: u32 = 2156965505; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 44640; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 2151722601; +pub const KVM_SET_NR_MMU_PAGES: u32 = 44612; +pub const KVM_IOEVENTFD: u32 = 1077980793; +pub const KVM_RUN: u32 = 44672; +pub const KVM_S390_SET_SKEYS: u32 = 1077980851; +pub const KVM_SET_DEVICE_ATTR: u32 = 1075359457; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 1077980789; +pub const KVM_SMI: u32 = 44727; +pub const KVM_SET_TSS_ADDR: u32 = 44615; +pub const KVM_GET_NR_MMU_PAGES: u32 = 44613; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 44657; +pub const KVM_HAS_DEVICE_ATTR: u32 = 1075359459; +pub const KVM_IRQFD: u32 = 1075883638; +pub const KVM_S390_SET_CMMA_BITS: u32 = 1075883705; +pub const KVM_SET_IRQCHIP: u32 = 2181607011; +pub const KVM_SIGNAL_MSI: u32 = 1075883685; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 44548; +pub const KVM_CREATE_VM: u32 = 44545; +pub const KVM_S390_CLEAR_RESET: u32 = 44740; +pub const KVM_RESET_DIRTY_RINGS: u32 = 44743; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 1074310771; +pub const KVM_CREATE_PIT: u32 = 44644; +pub const KVM_SET_GUEST_DEBUG: u32 = 1078505115; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 1074048706; +pub const KVM_SET_CLOCK: u32 = 1076932219; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 2186325670; +pub const KVM_SET_TSC_KHZ: u32 = 44706; +pub const KVM_S390_IRQ: u32 = 1078505140; +pub const KVM_ENABLE_CAP: u32 = 1080602275; +pub const KVM_IRQ_LINE: u32 = 1074310753; +pub const KVM_SET_SREGS: u32 = 1094233732; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 2148576956; +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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 CM_IOSDBGLVL: u32 = 1074029562; +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 MEYEIOC_SYNC: u32 = 3221518019; +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 CM_IOCGATR: u32 = 3221512961; +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 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 32; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_uint; +pub type ssize_t = crate::ctypes::c_int; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 32usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/general.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/general.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/general.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/general.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5007 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)] +pub struct __BindgenBitfieldUnit { +storage: Storage, +} +impl __BindgenBitfieldUnit { +#[inline] +pub const fn new(storage: Storage) -> Self { +Self { storage } +} +} +impl __BindgenBitfieldUnit +where +Storage: AsRef<[u8]> + AsMut<[u8]>, +{ +#[inline] +pub fn get_bit(&self, index: usize) -> bool { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = self.storage.as_ref()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +byte & mask == mask +} +#[inline] +pub fn set_bit(&mut self, index: usize, val: bool) { +debug_assert!(index / 8 < self.storage.as_ref().len()); +let byte_index = index / 8; +let byte = &mut self.storage.as_mut()[byte_index]; +let bit_index = if cfg!(target_endian = "big") { 7 - (index % 8) } else { index % 8 }; +let mask = 1 << bit_index; +if val { +*byte |= mask; +} else { +*byte &= !mask; +} +} +#[inline] +pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +let mut val = 0; +for i in 0..(bit_width as usize) { +if self.get_bit(i + bit_offset) { +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +val |= 1 << index; +} +} +val +} +#[inline] +pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) { +debug_assert!(bit_width <= 64); +debug_assert!(bit_offset / 8 < self.storage.as_ref().len()); +debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len()); +for i in 0..(bit_width as usize) { +let mask = 1 << i; +let val_bit_is_set = val & mask == mask; +let index = if cfg!(target_endian = "big") { bit_width as usize - 1 - i } else { i }; +self.set_bit(index + bit_offset, val_bit_is_set); +} +} +} +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +#[repr(C)] +pub struct __BindgenUnionField(::core::marker::PhantomData); +impl __BindgenUnionField { +#[inline] +pub const fn new() -> Self { +__BindgenUnionField(::core::marker::PhantomData) +} +#[inline] +pub unsafe fn as_ref(&self) -> &T { +::core::mem::transmute(self) +} +#[inline] +pub unsafe fn as_mut(&mut self) -> &mut T { +::core::mem::transmute(self) +} +} +impl ::core::default::Default for __BindgenUnionField { +#[inline] +fn default() -> Self { +Self::new() +} +} +impl ::core::clone::Clone for __BindgenUnionField { +#[inline] +fn clone(&self) -> Self { +Self::new() +} +} +impl ::core::marker::Copy for __BindgenUnionField {} +impl ::core::fmt::Debug for __BindgenUnionField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__BindgenUnionField") +} +} +impl ::core::hash::Hash for __BindgenUnionField { +fn hash(&self, _state: &mut H) {} +} +impl ::core::cmp::PartialEq for __BindgenUnionField { +fn eq(&self, _other: &__BindgenUnionField) -> bool { +true +} +} +impl ::core::cmp::Eq for __BindgenUnionField {} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +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_EXECFN: u32 = 31; +pub const AT_MINSIGSTKSZ: u32 = 51; +pub const __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_TMPFILE_MASK: u32 = 4259904; +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_CANCELLK: u32 = 1029; +pub const F_DUPFD_CLOEXEC: u32 = 1030; +pub const F_NOTIFY: u32 = 1026; +pub const F_SETPIPE_SZ: u32 = 1031; +pub const F_GETPIPE_SZ: u32 = 1032; +pub const F_ADD_SEALS: u32 = 1033; +pub const F_GET_SEALS: u32 = 1034; +pub const F_SEAL_SEAL: u32 = 1; +pub const F_SEAL_SHRINK: u32 = 2; +pub const F_SEAL_GROW: u32 = 4; +pub const F_SEAL_WRITE: u32 = 8; +pub const F_SEAL_FUTURE_WRITE: u32 = 16; +pub const F_GET_RW_HINT: u32 = 1035; +pub const F_SET_RW_HINT: u32 = 1036; +pub const F_GET_FILE_RW_HINT: u32 = 1037; +pub const F_SET_FILE_RW_HINT: u32 = 1038; +pub const RWH_WRITE_LIFE_NOT_SET: u32 = 0; +pub const RWH_WRITE_LIFE_NONE: u32 = 1; +pub const RWH_WRITE_LIFE_SHORT: u32 = 2; +pub const RWH_WRITE_LIFE_MEDIUM: u32 = 3; +pub const RWH_WRITE_LIFE_LONG: u32 = 4; +pub const RWH_WRITE_LIFE_EXTREME: u32 = 5; +pub const RWF_WRITE_LIFE_NOT_SET: u32 = 0; +pub const DN_ACCESS: u32 = 1; +pub const DN_MODIFY: u32 = 2; +pub const DN_CREATE: u32 = 4; +pub const DN_DELETE: u32 = 8; +pub const DN_RENAME: u32 = 16; +pub const DN_ATTRIB: u32 = 32; +pub const DN_MULTISHOT: u32 = 2147483648; +pub const AT_FDCWD: i32 = -100; +pub const AT_SYMLINK_NOFOLLOW: u32 = 256; +pub const AT_EACCESS: u32 = 512; +pub const AT_REMOVEDIR: u32 = 512; +pub const AT_SYMLINK_FOLLOW: u32 = 1024; +pub const AT_NO_AUTOMOUNT: u32 = 2048; +pub const AT_EMPTY_PATH: u32 = 4096; +pub const AT_STATX_SYNC_TYPE: u32 = 24576; +pub const AT_STATX_SYNC_AS_STAT: u32 = 0; +pub const AT_STATX_FORCE_SYNC: u32 = 8192; +pub const AT_STATX_DONT_SYNC: u32 = 16384; +pub const AT_RECURSIVE: u32 = 32768; +pub const EPOLL_CLOEXEC: u32 = 524288; +pub const EPOLL_CTL_ADD: u32 = 1; +pub const EPOLL_CTL_DEL: u32 = 2; +pub const EPOLL_CTL_MOD: u32 = 3; +pub const POSIX_FADV_NORMAL: u32 = 0; +pub const POSIX_FADV_RANDOM: u32 = 1; +pub const POSIX_FADV_SEQUENTIAL: u32 = 2; +pub const POSIX_FADV_WILLNEED: u32 = 3; +pub const POSIX_FADV_DONTNEED: u32 = 4; +pub const POSIX_FADV_NOREUSE: u32 = 5; +pub const FALLOC_FL_KEEP_SIZE: u32 = 1; +pub const FALLOC_FL_PUNCH_HOLE: u32 = 2; +pub const FALLOC_FL_NO_HIDE_STALE: u32 = 4; +pub const FALLOC_FL_COLLAPSE_RANGE: u32 = 8; +pub const FALLOC_FL_ZERO_RANGE: u32 = 16; +pub const FALLOC_FL_INSERT_RANGE: u32 = 32; +pub const FALLOC_FL_UNSHARE_RANGE: u32 = 64; +pub const NR_OPEN: u32 = 1024; +pub const NGROUPS_MAX: u32 = 65536; +pub const ARG_MAX: u32 = 131072; +pub const LINK_MAX: u32 = 127; +pub const MAX_CANON: u32 = 255; +pub const MAX_INPUT: u32 = 255; +pub const NAME_MAX: u32 = 255; +pub const PATH_MAX: u32 = 4096; +pub const PIPE_BUF: u32 = 4096; +pub const XATTR_NAME_MAX: u32 = 255; +pub const XATTR_SIZE_MAX: u32 = 65536; +pub const XATTR_LIST_MAX: u32 = 65536; +pub const RTSIG_MAX: u32 = 32; +pub const _IOC_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_ADIANTUM: u32 = 9; +pub const FSCRYPT_POLICY_V1: u32 = 0; +pub const FSCRYPT_KEY_DESCRIPTOR_SIZE: u32 = 8; +pub const FSCRYPT_KEY_DESC_PREFIX: &[u8; 9usize] = 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_SPECK128_256_XTS: u32 = 7; +pub const FS_ENCRYPTION_MODE_SPECK128_256_CTS: u32 = 8; +pub const FS_ENCRYPTION_MODE_ADIANTUM: u32 = 9; +pub const FS_KEY_DESC_PREFIX: &[u8; 9usize] = b"fscrypt:\0"; +pub const FS_KEY_DESC_PREFIX_SIZE: u32 = 8; +pub const FS_MAX_KEY_SIZE: u32 = 64; +pub const MS_RDONLY: u32 = 1; +pub const MS_NOSUID: u32 = 2; +pub const MS_NODEV: u32 = 4; +pub const MS_NOEXEC: u32 = 8; +pub const MS_SYNCHRONOUS: u32 = 16; +pub const MS_REMOUNT: u32 = 32; +pub const MS_MANDLOCK: u32 = 64; +pub const MS_DIRSYNC: u32 = 128; +pub const MS_NOSYMFOLLOW: u32 = 256; +pub const MS_NOATIME: u32 = 1024; +pub const MS_NODIRATIME: u32 = 2048; +pub const MS_BIND: u32 = 4096; +pub const MS_MOVE: u32 = 8192; +pub const MS_REC: u32 = 16384; +pub const MS_VERBOSE: u32 = 32768; +pub const MS_SILENT: u32 = 32768; +pub const MS_POSIXACL: u32 = 65536; +pub const MS_UNBINDABLE: u32 = 131072; +pub const MS_PRIVATE: u32 = 262144; +pub const MS_SLAVE: u32 = 524288; +pub const MS_SHARED: u32 = 1048576; +pub const MS_RELATIME: u32 = 2097152; +pub const MS_KERNMOUNT: u32 = 4194304; +pub const MS_I_VERSION: u32 = 8388608; +pub const MS_STRICTATIME: u32 = 16777216; +pub const MS_LAZYTIME: u32 = 33554432; +pub const MS_SUBMOUNT: u32 = 67108864; +pub const MS_NOREMOTELOCK: u32 = 134217728; +pub const MS_NOSEC: u32 = 268435456; +pub const MS_BORN: u32 = 536870912; +pub const MS_ACTIVE: u32 = 1073741824; +pub const MS_NOUSER: u32 = 2147483648; +pub const MS_RMT_MASK: u32 = 41943121; +pub const MS_MGC_VAL: u32 = 3236757504; +pub const MS_MGC_MSK: u32 = 4294901760; +pub const OPEN_TREE_CLONE: u32 = 1; +pub const OPEN_TREE_CLOEXEC: u32 = 524288; +pub const MOVE_MOUNT_F_SYMLINKS: u32 = 1; +pub const MOVE_MOUNT_F_AUTOMOUNTS: u32 = 2; +pub const MOVE_MOUNT_F_EMPTY_PATH: u32 = 4; +pub const MOVE_MOUNT_T_SYMLINKS: u32 = 16; +pub const MOVE_MOUNT_T_AUTOMOUNTS: u32 = 32; +pub const MOVE_MOUNT_T_EMPTY_PATH: u32 = 64; +pub const MOVE_MOUNT_SET_GROUP: u32 = 256; +pub const MOVE_MOUNT__MASK: u32 = 375; +pub const FSOPEN_CLOEXEC: u32 = 1; +pub const FSPICK_CLOEXEC: u32 = 1; +pub const FSPICK_SYMLINK_NOFOLLOW: u32 = 2; +pub const FSPICK_NO_AUTOMOUNT: u32 = 4; +pub const FSPICK_EMPTY_PATH: u32 = 8; +pub const FSMOUNT_CLOEXEC: u32 = 1; +pub const MOUNT_ATTR_RDONLY: u32 = 1; +pub const MOUNT_ATTR_NOSUID: u32 = 2; +pub const MOUNT_ATTR_NODEV: u32 = 4; +pub const MOUNT_ATTR_NOEXEC: u32 = 8; +pub const MOUNT_ATTR__ATIME: u32 = 112; +pub const MOUNT_ATTR_RELATIME: u32 = 0; +pub const MOUNT_ATTR_NOATIME: u32 = 16; +pub const MOUNT_ATTR_STRICTATIME: u32 = 32; +pub const MOUNT_ATTR_NODIRATIME: u32 = 128; +pub const MOUNT_ATTR_IDMAP: u32 = 1048576; +pub const MOUNT_ATTR_NOSYMFOLLOW: u32 = 2097152; +pub const MOUNT_ATTR_SIZE_VER0: u32 = 32; +pub const INR_OPEN_CUR: u32 = 1024; +pub const INR_OPEN_MAX: u32 = 4096; +pub const BLOCK_SIZE_BITS: u32 = 10; +pub const BLOCK_SIZE: u32 = 1024; +pub const SEEK_SET: u32 = 0; +pub const SEEK_CUR: u32 = 1; +pub const SEEK_END: u32 = 2; +pub const SEEK_DATA: u32 = 3; +pub const SEEK_HOLE: u32 = 4; +pub const SEEK_MAX: u32 = 4; +pub const RENAME_NOREPLACE: u32 = 1; +pub const RENAME_EXCHANGE: u32 = 2; +pub const RENAME_WHITEOUT: u32 = 4; +pub const FILE_DEDUPE_RANGE_SAME: u32 = 0; +pub const FILE_DEDUPE_RANGE_DIFFERS: u32 = 1; +pub const NR_FILE: u32 = 8192; +pub const FS_XFLAG_REALTIME: u32 = 1; +pub const FS_XFLAG_PREALLOC: u32 = 2; +pub const FS_XFLAG_IMMUTABLE: u32 = 8; +pub const FS_XFLAG_APPEND: u32 = 16; +pub const FS_XFLAG_SYNC: u32 = 32; +pub const FS_XFLAG_NOATIME: u32 = 64; +pub const FS_XFLAG_NODUMP: u32 = 128; +pub const FS_XFLAG_RTINHERIT: u32 = 256; +pub const FS_XFLAG_PROJINHERIT: u32 = 512; +pub const FS_XFLAG_NOSYMLINKS: u32 = 1024; +pub const FS_XFLAG_EXTSIZE: u32 = 2048; +pub const FS_XFLAG_EXTSZINHERIT: u32 = 4096; +pub const FS_XFLAG_NODEFRAG: u32 = 8192; +pub const FS_XFLAG_FILESTREAM: u32 = 16384; +pub const FS_XFLAG_DAX: u32 = 32768; +pub const FS_XFLAG_COWEXTSIZE: u32 = 65536; +pub const FS_XFLAG_HASATTR: u32 = 2147483648; +pub const BMAP_IOCTL: u32 = 1; +pub const FSLABEL_MAX: u32 = 256; +pub const FS_SECRM_FL: u32 = 1; +pub const FS_UNRM_FL: u32 = 2; +pub const FS_COMPR_FL: u32 = 4; +pub const FS_SYNC_FL: u32 = 8; +pub const FS_IMMUTABLE_FL: u32 = 16; +pub const FS_APPEND_FL: u32 = 32; +pub const FS_NODUMP_FL: u32 = 64; +pub const FS_NOATIME_FL: u32 = 128; +pub const FS_DIRTY_FL: u32 = 256; +pub const FS_COMPRBLK_FL: u32 = 512; +pub const FS_NOCOMP_FL: u32 = 1024; +pub const FS_ENCRYPT_FL: u32 = 2048; +pub const FS_BTREE_FL: u32 = 4096; +pub const FS_INDEX_FL: u32 = 4096; +pub const FS_IMAGIC_FL: u32 = 8192; +pub const FS_JOURNAL_DATA_FL: u32 = 16384; +pub const FS_NOTAIL_FL: u32 = 32768; +pub const FS_DIRSYNC_FL: u32 = 65536; +pub const FS_TOPDIR_FL: u32 = 131072; +pub const FS_HUGE_FILE_FL: u32 = 262144; +pub const FS_EXTENT_FL: u32 = 524288; +pub const FS_VERITY_FL: u32 = 1048576; +pub const FS_EA_INODE_FL: u32 = 2097152; +pub const FS_EOFBLOCKS_FL: u32 = 4194304; +pub const FS_NOCOW_FL: u32 = 8388608; +pub const FS_DAX_FL: u32 = 33554432; +pub const FS_INLINE_DATA_FL: u32 = 268435456; +pub const FS_PROJINHERIT_FL: u32 = 536870912; +pub const FS_CASEFOLD_FL: u32 = 1073741824; +pub const FS_RESERVED_FL: u32 = 2147483648; +pub const FS_FL_USER_VISIBLE: u32 = 253951; +pub const FS_FL_USER_MODIFIABLE: u32 = 229631; +pub const SYNC_FILE_RANGE_WAIT_BEFORE: u32 = 1; +pub const SYNC_FILE_RANGE_WRITE: u32 = 2; +pub const SYNC_FILE_RANGE_WAIT_AFTER: u32 = 4; +pub const SYNC_FILE_RANGE_WRITE_AND_WAIT: u32 = 7; +pub const FUTEX_WAIT: u32 = 0; +pub const FUTEX_WAKE: u32 = 1; +pub const FUTEX_FD: u32 = 2; +pub const FUTEX_REQUEUE: u32 = 3; +pub const FUTEX_CMP_REQUEUE: u32 = 4; +pub const FUTEX_WAKE_OP: u32 = 5; +pub const FUTEX_LOCK_PI: u32 = 6; +pub const FUTEX_UNLOCK_PI: u32 = 7; +pub const FUTEX_TRYLOCK_PI: u32 = 8; +pub const FUTEX_WAIT_BITSET: u32 = 9; +pub const FUTEX_WAKE_BITSET: u32 = 10; +pub const FUTEX_WAIT_REQUEUE_PI: u32 = 11; +pub const FUTEX_CMP_REQUEUE_PI: u32 = 12; +pub const FUTEX_LOCK_PI2: u32 = 13; +pub const FUTEX_PRIVATE_FLAG: u32 = 128; +pub const FUTEX_CLOCK_REALTIME: u32 = 256; +pub const FUTEX_CMD_MASK: i32 = -385; +pub const FUTEX_WAIT_PRIVATE: u32 = 128; +pub const FUTEX_WAKE_PRIVATE: u32 = 129; +pub const FUTEX_REQUEUE_PRIVATE: u32 = 131; +pub const FUTEX_CMP_REQUEUE_PRIVATE: u32 = 132; +pub const FUTEX_WAKE_OP_PRIVATE: u32 = 133; +pub const FUTEX_LOCK_PI_PRIVATE: u32 = 134; +pub const FUTEX_LOCK_PI2_PRIVATE: u32 = 141; +pub const FUTEX_UNLOCK_PI_PRIVATE: u32 = 135; +pub const FUTEX_TRYLOCK_PI_PRIVATE: u32 = 136; +pub const FUTEX_WAIT_BITSET_PRIVATE: u32 = 137; +pub const FUTEX_WAKE_BITSET_PRIVATE: u32 = 138; +pub const FUTEX_WAIT_REQUEUE_PI_PRIVATE: u32 = 139; +pub const FUTEX_CMP_REQUEUE_PI_PRIVATE: u32 = 140; +pub const FUTEX_32: u32 = 2; +pub const FUTEX_WAITV_MAX: u32 = 128; +pub const FUTEX_WAITERS: u32 = 2147483648; +pub const FUTEX_OWNER_DIED: u32 = 1073741824; +pub const FUTEX_TID_MASK: u32 = 1073741823; +pub const ROBUST_LIST_LIMIT: u32 = 2048; +pub const FUTEX_BITSET_MATCH_ANY: u32 = 4294967295; +pub const FUTEX_OP_SET: u32 = 0; +pub const FUTEX_OP_ADD: u32 = 1; +pub const FUTEX_OP_OR: u32 = 2; +pub const FUTEX_OP_ANDN: u32 = 3; +pub const FUTEX_OP_XOR: u32 = 4; +pub const FUTEX_OP_OPARG_SHIFT: u32 = 8; +pub const FUTEX_OP_CMP_EQ: u32 = 0; +pub const FUTEX_OP_CMP_NE: u32 = 1; +pub const FUTEX_OP_CMP_LT: u32 = 2; +pub const FUTEX_OP_CMP_LE: u32 = 3; +pub const FUTEX_OP_CMP_GT: u32 = 4; +pub const FUTEX_OP_CMP_GE: u32 = 5; +pub const __UAPI_DEF_IF_IFCONF: u32 = 1; +pub const __UAPI_DEF_IF_IFMAP: u32 = 1; +pub const __UAPI_DEF_IF_IFNAMSIZ: u32 = 1; +pub const __UAPI_DEF_IF_IFREQ: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS: u32 = 1; +pub const __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO: u32 = 1; +pub const __UAPI_DEF_IN_ADDR: u32 = 1; +pub const __UAPI_DEF_IN_IPPROTO: u32 = 1; +pub const __UAPI_DEF_IN_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP_MREQ: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN: u32 = 1; +pub const __UAPI_DEF_IN_CLASS: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR: u32 = 1; +pub const __UAPI_DEF_IN6_ADDR_ALT: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IN6: u32 = 1; +pub const __UAPI_DEF_IPV6_MREQ: u32 = 1; +pub const __UAPI_DEF_IPPROTO_V6: u32 = 1; +pub const __UAPI_DEF_IPV6_OPTIONS: u32 = 1; +pub const __UAPI_DEF_IN6_PKTINFO: u32 = 1; +pub const __UAPI_DEF_IP6_MTUINFO: u32 = 1; +pub const __UAPI_DEF_SOCKADDR_IPX: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_INTERFACE_DEFINITION: u32 = 1; +pub const __UAPI_DEF_IPX_CONFIG_DATA: u32 = 1; +pub const __UAPI_DEF_IPX_ROUTE_DEF: u32 = 1; +pub const __UAPI_DEF_XATTR: u32 = 1; +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 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 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 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 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 ADFS_SUPER_MAGIC: u32 = 44533; +pub const AFFS_SUPER_MAGIC: u32 = 44543; +pub const AFS_SUPER_MAGIC: u32 = 1397113167; +pub const AUTOFS_SUPER_MAGIC: u32 = 391; +pub const CEPH_SUPER_MAGIC: u32 = 12805120; +pub const CODA_SUPER_MAGIC: u32 = 1937076805; +pub const CRAMFS_MAGIC: u32 = 684539205; +pub const CRAMFS_MAGIC_WEND: u32 = 1161678120; +pub const DEBUGFS_MAGIC: u32 = 1684170528; +pub const SECURITYFS_MAGIC: u32 = 1935894131; +pub const SELINUX_MAGIC: u32 = 4185718668; +pub const SMACK_MAGIC: u32 = 1128357203; +pub const RAMFS_MAGIC: u32 = 2240043254; +pub const TMPFS_MAGIC: u32 = 16914836; +pub const HUGETLBFS_MAGIC: u32 = 2508478710; +pub const SQUASHFS_MAGIC: u32 = 1936814952; +pub const ECRYPTFS_SUPER_MAGIC: u32 = 61791; +pub const EFS_SUPER_MAGIC: u32 = 4278867; +pub const EROFS_SUPER_MAGIC_V1: u32 = 3774210530; +pub const EXT2_SUPER_MAGIC: u32 = 61267; +pub const EXT3_SUPER_MAGIC: u32 = 61267; +pub const XENFS_SUPER_MAGIC: u32 = 2881100148; +pub const EXT4_SUPER_MAGIC: u32 = 61267; +pub const BTRFS_SUPER_MAGIC: u32 = 2435016766; +pub const NILFS_SUPER_MAGIC: u32 = 13364; +pub const F2FS_SUPER_MAGIC: u32 = 4076150800; +pub const HPFS_SUPER_MAGIC: u32 = 4187351113; +pub const ISOFS_SUPER_MAGIC: u32 = 38496; +pub const JFFS2_SUPER_MAGIC: u32 = 29366; +pub const XFS_SUPER_MAGIC: u32 = 1481003842; +pub const PSTOREFS_MAGIC: u32 = 1634035564; +pub const EFIVARFS_MAGIC: u32 = 3730735588; +pub const HOSTFS_SUPER_MAGIC: u32 = 12648430; +pub const OVERLAYFS_SUPER_MAGIC: u32 = 2035054128; +pub const FUSE_SUPER_MAGIC: u32 = 1702057286; +pub const MINIX_SUPER_MAGIC: u32 = 4991; +pub const MINIX_SUPER_MAGIC2: u32 = 5007; +pub const MINIX2_SUPER_MAGIC: u32 = 9320; +pub const MINIX2_SUPER_MAGIC2: u32 = 9336; +pub const MINIX3_SUPER_MAGIC: u32 = 19802; +pub const MSDOS_SUPER_MAGIC: u32 = 19780; +pub const EXFAT_SUPER_MAGIC: u32 = 538032816; +pub const NCP_SUPER_MAGIC: u32 = 22092; +pub const NFS_SUPER_MAGIC: u32 = 26985; +pub const OCFS2_SUPER_MAGIC: u32 = 1952539503; +pub const OPENPROM_SUPER_MAGIC: u32 = 40865; +pub const QNX4_SUPER_MAGIC: u32 = 47; +pub const QNX6_SUPER_MAGIC: u32 = 1746473250; +pub const AFS_FS_MAGIC: u32 = 1799439955; +pub const REISERFS_SUPER_MAGIC: u32 = 1382369651; +pub const REISERFS_SUPER_MAGIC_STRING: &[u8; 9usize] = b"ReIsErFs\0"; +pub const REISER2FS_SUPER_MAGIC_STRING: &[u8; 10usize] = b"ReIsEr2Fs\0"; +pub const REISER2FS_JR_SUPER_MAGIC_STRING: &[u8; 10usize] = 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 BALLOON_KVM_MAGIC: u32 = 325456742; +pub const ZSMALLOC_MAGIC: u32 = 1479104553; +pub const DMA_BUF_MAGIC: u32 = 1145913666; +pub const DEVMEM_MAGIC: u32 = 1162691661; +pub const Z3FOLD_MAGIC: u32 = 51; +pub const PPC_CMM_MAGIC: u32 = 3344373136; +pub const SECRETMEM_MAGIC: u32 = 1397048141; +pub const MAP_32BIT: u32 = 64; +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 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 HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26; +pub const HUGETLB_FLAG_ENCODE_MASK: u32 = 63; +pub const HUGETLB_FLAG_ENCODE_16KB: u32 = 939524096; +pub const HUGETLB_FLAG_ENCODE_64KB: u32 = 1073741824; +pub const HUGETLB_FLAG_ENCODE_512KB: u32 = 1275068416; +pub const HUGETLB_FLAG_ENCODE_1MB: u32 = 1342177280; +pub const HUGETLB_FLAG_ENCODE_2MB: u32 = 1409286144; +pub const HUGETLB_FLAG_ENCODE_8MB: u32 = 1543503872; +pub const HUGETLB_FLAG_ENCODE_16MB: u32 = 1610612736; +pub const HUGETLB_FLAG_ENCODE_32MB: u32 = 1677721600; +pub const HUGETLB_FLAG_ENCODE_256MB: u32 = 1879048192; +pub const HUGETLB_FLAG_ENCODE_512MB: u32 = 1946157056; +pub const HUGETLB_FLAG_ENCODE_1GB: u32 = 2013265920; +pub const HUGETLB_FLAG_ENCODE_2GB: u32 = 2080374784; +pub const HUGETLB_FLAG_ENCODE_16GB: u32 = 2281701376; +pub const MREMAP_MAYMOVE: u32 = 1; +pub const MREMAP_FIXED: u32 = 2; +pub const MREMAP_DONTUNMAP: u32 = 4; +pub const OVERCOMMIT_GUESS: u32 = 0; +pub const OVERCOMMIT_ALWAYS: u32 = 1; +pub const OVERCOMMIT_NEVER: u32 = 2; +pub const MAP_SHARED: u32 = 1; +pub const MAP_PRIVATE: u32 = 2; +pub const MAP_SHARED_VALIDATE: u32 = 3; +pub const MAP_HUGE_SHIFT: u32 = 26; +pub const MAP_HUGE_MASK: u32 = 63; +pub const MAP_HUGE_16KB: u32 = 939524096; +pub const MAP_HUGE_64KB: u32 = 1073741824; +pub const MAP_HUGE_512KB: u32 = 1275068416; +pub const MAP_HUGE_1MB: u32 = 1342177280; +pub const MAP_HUGE_2MB: u32 = 1409286144; +pub const MAP_HUGE_8MB: u32 = 1543503872; +pub const MAP_HUGE_16MB: u32 = 1610612736; +pub const MAP_HUGE_32MB: u32 = 1677721600; +pub const MAP_HUGE_256MB: u32 = 1879048192; +pub const MAP_HUGE_512MB: u32 = 1946157056; +pub const MAP_HUGE_1GB: u32 = 2013265920; +pub const MAP_HUGE_2GB: u32 = 2080374784; +pub const MAP_HUGE_16GB: u32 = 2281701376; +pub const 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_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 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 PR_SET_PDEATHSIG: u32 = 1; +pub const PR_GET_PDEATHSIG: u32 = 2; +pub const PR_GET_DUMPABLE: u32 = 3; +pub const PR_SET_DUMPABLE: u32 = 4; +pub const PR_GET_UNALIGN: u32 = 5; +pub const PR_SET_UNALIGN: u32 = 6; +pub const PR_UNALIGN_NOPRINT: u32 = 1; +pub const PR_UNALIGN_SIGBUS: u32 = 2; +pub const PR_GET_KEEPCAPS: u32 = 7; +pub const PR_SET_KEEPCAPS: u32 = 8; +pub const PR_GET_FPEMU: u32 = 9; +pub const PR_SET_FPEMU: u32 = 10; +pub const PR_FPEMU_NOPRINT: u32 = 1; +pub const PR_FPEMU_SIGFPE: u32 = 2; +pub const PR_GET_FPEXC: u32 = 11; +pub const PR_SET_FPEXC: u32 = 12; +pub const PR_FP_EXC_SW_ENABLE: u32 = 128; +pub const PR_FP_EXC_DIV: u32 = 65536; +pub const PR_FP_EXC_OVF: u32 = 131072; +pub const PR_FP_EXC_UND: u32 = 262144; +pub const PR_FP_EXC_RES: u32 = 524288; +pub const PR_FP_EXC_INV: u32 = 1048576; +pub const PR_FP_EXC_DISABLED: u32 = 0; +pub const PR_FP_EXC_NONRECOV: u32 = 1; +pub const PR_FP_EXC_ASYNC: u32 = 2; +pub const PR_FP_EXC_PRECISE: u32 = 3; +pub const PR_GET_TIMING: u32 = 13; +pub const PR_SET_TIMING: u32 = 14; +pub const PR_TIMING_STATISTICAL: u32 = 0; +pub const PR_TIMING_TIMESTAMP: u32 = 1; +pub const PR_SET_NAME: u32 = 15; +pub const PR_GET_NAME: u32 = 16; +pub const PR_GET_ENDIAN: u32 = 19; +pub const PR_SET_ENDIAN: u32 = 20; +pub const PR_ENDIAN_BIG: u32 = 0; +pub const PR_ENDIAN_LITTLE: u32 = 1; +pub const PR_ENDIAN_PPC_LITTLE: u32 = 2; +pub const PR_GET_SECCOMP: u32 = 21; +pub const PR_SET_SECCOMP: u32 = 22; +pub const PR_CAPBSET_READ: u32 = 23; +pub const PR_CAPBSET_DROP: u32 = 24; +pub const PR_GET_TSC: u32 = 25; +pub const PR_SET_TSC: u32 = 26; +pub const PR_TSC_ENABLE: u32 = 1; +pub const PR_TSC_SIGSEGV: u32 = 2; +pub const PR_GET_SECUREBITS: u32 = 27; +pub const PR_SET_SECUREBITS: u32 = 28; +pub const PR_SET_TIMERSLACK: u32 = 29; +pub const PR_GET_TIMERSLACK: u32 = 30; +pub const PR_TASK_PERF_EVENTS_DISABLE: u32 = 31; +pub const PR_TASK_PERF_EVENTS_ENABLE: u32 = 32; +pub const PR_MCE_KILL: u32 = 33; +pub const PR_MCE_KILL_CLEAR: u32 = 0; +pub const PR_MCE_KILL_SET: u32 = 1; +pub const PR_MCE_KILL_LATE: u32 = 0; +pub const PR_MCE_KILL_EARLY: u32 = 1; +pub const PR_MCE_KILL_DEFAULT: u32 = 2; +pub const PR_MCE_KILL_GET: u32 = 34; +pub const PR_SET_MM: u32 = 35; +pub const PR_SET_MM_START_CODE: u32 = 1; +pub const PR_SET_MM_END_CODE: u32 = 2; +pub const PR_SET_MM_START_DATA: u32 = 3; +pub const PR_SET_MM_END_DATA: u32 = 4; +pub const PR_SET_MM_START_STACK: u32 = 5; +pub const PR_SET_MM_START_BRK: u32 = 6; +pub const PR_SET_MM_BRK: u32 = 7; +pub const PR_SET_MM_ARG_START: u32 = 8; +pub const PR_SET_MM_ARG_END: u32 = 9; +pub const PR_SET_MM_ENV_START: u32 = 10; +pub const PR_SET_MM_ENV_END: u32 = 11; +pub const PR_SET_MM_AUXV: u32 = 12; +pub const PR_SET_MM_EXE_FILE: u32 = 13; +pub const PR_SET_MM_MAP: u32 = 14; +pub const PR_SET_MM_MAP_SIZE: u32 = 15; +pub const PR_SET_PTRACER: u32 = 1499557217; +pub const PR_SET_CHILD_SUBREAPER: u32 = 36; +pub const PR_GET_CHILD_SUBREAPER: u32 = 37; +pub const PR_SET_NO_NEW_PRIVS: u32 = 38; +pub const PR_GET_NO_NEW_PRIVS: u32 = 39; +pub const PR_GET_TID_ADDRESS: u32 = 40; +pub const PR_SET_THP_DISABLE: u32 = 41; +pub const PR_GET_THP_DISABLE: u32 = 42; +pub const PR_MPX_ENABLE_MANAGEMENT: u32 = 43; +pub const PR_MPX_DISABLE_MANAGEMENT: u32 = 44; +pub const PR_SET_FP_MODE: u32 = 45; +pub const PR_GET_FP_MODE: u32 = 46; +pub const PR_FP_MODE_FR: u32 = 1; +pub const PR_FP_MODE_FRE: u32 = 2; +pub const PR_CAP_AMBIENT: u32 = 47; +pub const PR_CAP_AMBIENT_IS_SET: u32 = 1; +pub const PR_CAP_AMBIENT_RAISE: u32 = 2; +pub const PR_CAP_AMBIENT_LOWER: u32 = 3; +pub const PR_CAP_AMBIENT_CLEAR_ALL: u32 = 4; +pub const PR_SVE_SET_VL: u32 = 50; +pub const PR_SVE_SET_VL_ONEXEC: u32 = 262144; +pub const PR_SVE_GET_VL: u32 = 51; +pub const PR_SVE_VL_LEN_MASK: u32 = 65535; +pub const PR_SVE_VL_INHERIT: u32 = 131072; +pub const PR_GET_SPECULATION_CTRL: u32 = 52; +pub const PR_SET_SPECULATION_CTRL: u32 = 53; +pub const PR_SPEC_STORE_BYPASS: u32 = 0; +pub const PR_SPEC_INDIRECT_BRANCH: u32 = 1; +pub const PR_SPEC_L1D_FLUSH: u32 = 2; +pub const PR_SPEC_NOT_AFFECTED: u32 = 0; +pub const PR_SPEC_PRCTL: u32 = 1; +pub const PR_SPEC_ENABLE: u32 = 2; +pub const PR_SPEC_DISABLE: u32 = 4; +pub const PR_SPEC_FORCE_DISABLE: u32 = 8; +pub const PR_SPEC_DISABLE_NOEXEC: u32 = 16; +pub const PR_PAC_RESET_KEYS: u32 = 54; +pub const PR_PAC_APIAKEY: u32 = 1; +pub const PR_PAC_APIBKEY: u32 = 2; +pub const PR_PAC_APDAKEY: u32 = 4; +pub const PR_PAC_APDBKEY: u32 = 8; +pub const PR_PAC_APGAKEY: u32 = 16; +pub const PR_SET_TAGGED_ADDR_CTRL: u32 = 55; +pub const PR_GET_TAGGED_ADDR_CTRL: u32 = 56; +pub const PR_TAGGED_ADDR_ENABLE: u32 = 1; +pub const PR_MTE_TCF_NONE: u32 = 0; +pub const PR_MTE_TCF_SYNC: u32 = 2; +pub const PR_MTE_TCF_ASYNC: u32 = 4; +pub const PR_MTE_TCF_MASK: u32 = 6; +pub const PR_MTE_TAG_SHIFT: u32 = 3; +pub const PR_MTE_TAG_MASK: u32 = 524280; +pub const PR_MTE_TCF_SHIFT: u32 = 1; +pub const PR_SET_IO_FLUSHER: u32 = 57; +pub const PR_GET_IO_FLUSHER: u32 = 58; +pub const PR_SET_SYSCALL_USER_DISPATCH: u32 = 59; +pub const PR_SYS_DISPATCH_OFF: u32 = 0; +pub const PR_SYS_DISPATCH_ON: u32 = 1; +pub const SYSCALL_DISPATCH_FILTER_ALLOW: u32 = 0; +pub const SYSCALL_DISPATCH_FILTER_BLOCK: u32 = 1; +pub const PR_PAC_SET_ENABLED_KEYS: u32 = 60; +pub const PR_PAC_GET_ENABLED_KEYS: u32 = 61; +pub const PR_SCHED_CORE: u32 = 62; +pub const PR_SCHED_CORE_GET: u32 = 0; +pub const PR_SCHED_CORE_CREATE: u32 = 1; +pub const PR_SCHED_CORE_SHARE_TO: u32 = 2; +pub const PR_SCHED_CORE_SHARE_FROM: u32 = 3; +pub const PR_SCHED_CORE_MAX: u32 = 4; +pub const PR_SCHED_CORE_SCOPE_THREAD: u32 = 0; +pub const PR_SCHED_CORE_SCOPE_THREAD_GROUP: u32 = 1; +pub const PR_SCHED_CORE_SCOPE_PROCESS_GROUP: u32 = 2; +pub const PR_SET_VMA: u32 = 1398164801; +pub const PR_SET_VMA_ANON_NAME: u32 = 0; +pub const GRND_NONBLOCK: u32 = 1; +pub const GRND_RANDOM: u32 = 2; +pub const GRND_INSECURE: u32 = 4; +pub const ITIMER_REAL: u32 = 0; +pub const ITIMER_VIRTUAL: u32 = 1; +pub const ITIMER_PROF: u32 = 2; +pub const CLOCK_REALTIME: u32 = 0; +pub const CLOCK_MONOTONIC: u32 = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: u32 = 2; +pub const CLOCK_THREAD_CPUTIME_ID: u32 = 3; +pub const CLOCK_MONOTONIC_RAW: u32 = 4; +pub const CLOCK_REALTIME_COARSE: u32 = 5; +pub const CLOCK_MONOTONIC_COARSE: u32 = 6; +pub const CLOCK_BOOTTIME: u32 = 7; +pub const CLOCK_REALTIME_ALARM: u32 = 8; +pub const CLOCK_BOOTTIME_ALARM: u32 = 9; +pub const CLOCK_SGI_CYCLE: u32 = 10; +pub const CLOCK_TAI: u32 = 11; +pub const MAX_CLOCKS: u32 = 16; +pub const CLOCKS_MASK: u32 = 1; +pub const CLOCKS_MONO: u32 = 1; +pub const TIMER_ABSTIME: u32 = 1; +pub const RUSAGE_SELF: u32 = 0; +pub const RUSAGE_CHILDREN: i32 = -1; +pub const RUSAGE_BOTH: i32 = -2; +pub const RUSAGE_THREAD: u32 = 1; +pub const RLIM64_INFINITY: i32 = -1; +pub const PRIO_MIN: i32 = -20; +pub const PRIO_MAX: u32 = 20; +pub const PRIO_PROCESS: u32 = 0; +pub const PRIO_PGRP: u32 = 1; +pub const PRIO_USER: u32 = 2; +pub const _STK_LIM: u32 = 8388608; +pub const MLOCK_LIMIT: u32 = 8388608; +pub const RLIMIT_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_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 NSIGSEGV: u32 = 9; +pub const BUS_ADRALN: u32 = 1; +pub const BUS_ADRERR: u32 = 2; +pub const BUS_OBJERR: u32 = 3; +pub const BUS_MCEERR_AR: u32 = 4; +pub const BUS_MCEERR_AO: u32 = 5; +pub const NSIGBUS: u32 = 5; +pub const TRAP_BRKPT: u32 = 1; +pub const TRAP_TRACE: u32 = 2; +pub const TRAP_BRANCH: u32 = 3; +pub const TRAP_HWBKPT: u32 = 4; +pub const TRAP_UNK: u32 = 5; +pub const TRAP_PERF: u32 = 6; +pub const NSIGTRAP: u32 = 6; +pub const 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__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 SI_LOAD_SHIFT: u32 = 16; +pub const TCP_MSS_DEFAULT: u32 = 536; +pub const TCP_MSS_DESIRED: u32 = 1220; +pub const TCP_NODELAY: u32 = 1; +pub const TCP_MAXSEG: u32 = 2; +pub const TCP_CORK: u32 = 3; +pub const TCP_KEEPIDLE: u32 = 4; +pub const TCP_KEEPINTVL: u32 = 5; +pub const TCP_KEEPCNT: u32 = 6; +pub const TCP_SYNCNT: u32 = 7; +pub const TCP_LINGER2: u32 = 8; +pub const TCP_DEFER_ACCEPT: u32 = 9; +pub const TCP_WINDOW_CLAMP: u32 = 10; +pub const TCP_INFO: u32 = 11; +pub const TCP_QUICKACK: u32 = 12; +pub const TCP_CONGESTION: u32 = 13; +pub const TCP_MD5SIG: u32 = 14; +pub const TCP_THIN_LINEAR_TIMEOUTS: u32 = 16; +pub const TCP_THIN_DUPACK: u32 = 17; +pub const TCP_USER_TIMEOUT: u32 = 18; +pub const TCP_REPAIR: u32 = 19; +pub const TCP_REPAIR_QUEUE: u32 = 20; +pub const TCP_QUEUE_SEQ: u32 = 21; +pub const TCP_REPAIR_OPTIONS: u32 = 22; +pub const TCP_FASTOPEN: u32 = 23; +pub const TCP_TIMESTAMP: u32 = 24; +pub const TCP_NOTSENT_LOWAT: u32 = 25; +pub const TCP_CC_INFO: u32 = 26; +pub const TCP_SAVE_SYN: u32 = 27; +pub const TCP_SAVED_SYN: u32 = 28; +pub const TCP_REPAIR_WINDOW: u32 = 29; +pub const TCP_FASTOPEN_CONNECT: u32 = 30; +pub const TCP_ULP: u32 = 31; +pub const TCP_MD5SIG_EXT: u32 = 32; +pub const TCP_FASTOPEN_KEY: u32 = 33; +pub const TCP_FASTOPEN_NO_COOKIE: u32 = 34; +pub const TCP_ZEROCOPY_RECEIVE: u32 = 35; +pub const TCP_INQ: u32 = 36; +pub const TCP_CM_INQ: u32 = 36; +pub const TCP_TX_DELAY: u32 = 37; +pub const TCP_REPAIR_ON: u32 = 1; +pub const TCP_REPAIR_OFF: u32 = 0; +pub const TCP_REPAIR_OFF_NO_WP: i32 = -1; +pub const TCPI_OPT_TIMESTAMPS: u32 = 1; +pub const TCPI_OPT_SACK: u32 = 2; +pub const TCPI_OPT_WSCALE: u32 = 4; +pub const TCPI_OPT_ECN: u32 = 8; +pub const TCPI_OPT_ECN_SEEN: u32 = 16; +pub const TCPI_OPT_SYN_DATA: u32 = 32; +pub const TCP_MD5SIG_MAXKEYLEN: u32 = 80; +pub const TCP_MD5SIG_FLAG_PREFIX: u32 = 1; +pub const TCP_MD5SIG_FLAG_IFINDEX: u32 = 2; +pub const TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT: u32 = 1; +pub const 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 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 IUCLC: u32 = 512; +pub const IXON: u32 = 1024; +pub const IXANY: u32 = 2048; +pub const IXOFF: u32 = 4096; +pub const IMAXBEL: u32 = 8192; +pub const IUTF8: u32 = 16384; +pub const OPOST: u32 = 1; +pub const OLCUC: u32 = 2; +pub const ONLCR: u32 = 4; +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 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 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 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 CMSPAR: u32 = 1073741824; +pub const CRTSCTS: u32 = 2147483648; +pub const IBSHIFT: u32 = 16; +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 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 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 UNIX_PATH_MAX: u32 = 108; +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_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 __OLD_UTS_LEN: u32 = 8; +pub const __NEW_UTS_LEN: u32 = 64; +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 MFD_CLOEXEC: u32 = 1; +pub const MFD_ALLOW_SEALING: u32 = 2; +pub const MFD_HUGETLB: u32 = 4; +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 _UFFDIO_REGISTER: u32 = 0; +pub const _UFFDIO_UNREGISTER: u32 = 1; +pub const _UFFDIO_WAKE: u32 = 2; +pub const _UFFDIO_COPY: u32 = 3; +pub const _UFFDIO_ZEROPAGE: u32 = 4; +pub const _UFFDIO_WRITEPROTECT: u32 = 6; +pub const _UFFDIO_CONTINUE: u32 = 7; +pub const _UFFDIO_API: u32 = 63; +pub const UFFDIO: u32 = 170; +pub const UFFD_EVENT_PAGEFAULT: u32 = 18; +pub const UFFD_EVENT_FORK: u32 = 19; +pub const UFFD_EVENT_REMAP: u32 = 20; +pub const UFFD_EVENT_REMOVE: u32 = 21; +pub const UFFD_EVENT_UNMAP: u32 = 22; +pub const UFFD_PAGEFAULT_FLAG_WRITE: u32 = 1; +pub const UFFD_PAGEFAULT_FLAG_WP: u32 = 2; +pub const UFFD_PAGEFAULT_FLAG_MINOR: u32 = 4; +pub const UFFD_FEATURE_PAGEFAULT_FLAG_WP: u32 = 1; +pub const UFFD_FEATURE_EVENT_FORK: u32 = 2; +pub const UFFD_FEATURE_EVENT_REMAP: u32 = 4; +pub const UFFD_FEATURE_EVENT_REMOVE: u32 = 8; +pub const UFFD_FEATURE_MISSING_HUGETLBFS: u32 = 16; +pub const UFFD_FEATURE_MISSING_SHMEM: u32 = 32; +pub const UFFD_FEATURE_EVENT_UNMAP: u32 = 64; +pub const UFFD_FEATURE_SIGBUS: u32 = 128; +pub const UFFD_FEATURE_THREAD_ID: u32 = 256; +pub const UFFD_FEATURE_MINOR_HUGETLBFS: u32 = 512; +pub const UFFD_FEATURE_MINOR_SHMEM: u32 = 1024; +pub const UFFD_USER_MODE_ONLY: u32 = 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_FSYNC_DATASYNC: u32 = 1; +pub const IORING_TIMEOUT_ABS: u32 = 1; +pub const IORING_TIMEOUT_UPDATE: u32 = 2; +pub const IORING_TIMEOUT_BOOTTIME: u32 = 4; +pub const IORING_TIMEOUT_REALTIME: u32 = 8; +pub const IORING_LINK_TIMEOUT_UPDATE: u32 = 16; +pub const IORING_TIMEOUT_ETIME_SUCCESS: u32 = 32; +pub const IORING_TIMEOUT_CLOCK_MASK: u32 = 12; +pub const IORING_TIMEOUT_UPDATE_MASK: u32 = 18; +pub const SPLICE_F_FD_IN_FIXED: u32 = 2147483648; +pub const IORING_POLL_ADD_MULTI: u32 = 1; +pub const IORING_POLL_UPDATE_EVENTS: u32 = 2; +pub const IORING_POLL_UPDATE_USER_DATA: u32 = 4; +pub const IORING_CQE_F_BUFFER: u32 = 1; +pub const IORING_CQE_F_MORE: u32 = 2; +pub const IORING_OFF_SQ_RING: u32 = 0; +pub const IORING_OFF_CQ_RING: u32 = 134217728; +pub const IORING_OFF_SQES: u32 = 268435456; +pub const IORING_SQ_NEED_WAKEUP: u32 = 1; +pub const IORING_SQ_CQ_OVERFLOW: u32 = 2; +pub const IORING_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_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_REGISTER_FILES_SKIP: i32 = -2; +pub const IO_URING_OP_SUPPORTED: 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 SHUT_RD: u32 = 0; +pub const SHUT_WR: u32 = 1; +pub const SHUT_RDWR: u32 = 2; +pub const STAT_HAVE_NSEC: u32 = 1; +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 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 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_MAX: u32 = 37; +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 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 SCM_RIGHTS: u32 = 1; +pub const SCM_CREDENTIALS: u32 = 2; +pub const SCM_SECURITY: u32 = 3; +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 type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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 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 fscrypt_policy_v1 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub master_key_descriptor: [__u8; 8usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_key { +pub mode: __u32, +pub raw: [__u8; 64usize], +pub size: __u32, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fscrypt_policy_v2 { +pub version: __u8, +pub contents_encryption_mode: __u8, +pub filenames_encryption_mode: __u8, +pub flags: __u8, +pub __reserved: [__u8; 4usize], +pub master_key_identifier: [__u8; 16usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct fscrypt_get_policy_ex_arg { +pub policy_size: __u64, +pub policy: fscrypt_get_policy_ex_arg__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub 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 struct fscrypt_key_specifier { +pub type_: __u32, +pub __reserved: __u32, +pub u: fscrypt_key_specifier__bindgen_ty_1, +} +#[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(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(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum fsconfig_command { +FSCONFIG_SET_FLAG = 0, +FSCONFIG_SET_STRING = 1, +FSCONFIG_SET_BINARY = 2, +FSCONFIG_SET_PATH = 3, +FSCONFIG_SET_PATH_EMPTY = 4, +FSCONFIG_SET_FD = 5, +FSCONFIG_CMD_CREATE = 6, +FSCONFIG_CMD_RECONFIGURE = 7, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct mount_attr { +pub attr_set: __u64, +pub attr_clr: __u64, +pub propagation: __u64, +pub userns_fd: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_clone_range { +pub src_fd: __s64, +pub src_offset: __u64, +pub src_length: __u64, +pub dest_offset: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fstrim_range { +pub start: __u64, +pub len: __u64, +pub minlen: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct file_dedupe_range_info { +pub dest_fd: __s64, +pub dest_offset: __u64, +pub bytes_deduped: __u64, +pub status: __s32, +pub reserved: __u32, +} +#[repr(C)] +#[derive(Debug)] +pub struct file_dedupe_range { +pub src_offset: __u64, +pub src_length: __u64, +pub dest_count: __u16, +pub reserved1: __u16, +pub reserved2: __u32, +pub info: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct files_stat_struct { +pub nr_files: crate::ctypes::c_ulong, +pub nr_free_files: crate::ctypes::c_ulong, +pub max_files: crate::ctypes::c_ulong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct inodes_stat_t { +pub nr_inodes: crate::ctypes::c_long, +pub nr_unused: crate::ctypes::c_long, +pub dummy: [crate::ctypes::c_long; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct fsxattr { +pub fsx_xflags: __u32, +pub fsx_extsize: __u32, +pub fsx_nextents: __u32, +pub fsx_projid: __u32, +pub fsx_cowextsize: __u32, +pub fsx_pad: [crate::ctypes::c_uchar; 8usize], +} +pub type __kernel_rwf_t = crate::ctypes::c_int; +#[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, +} +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(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(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], +} +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_SCTP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_SCTP; +pub const IPPROTO_UDPLITE: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_UDPLITE; +pub const IPPROTO_MPLS: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPLS; +pub const IPPROTO_ETHERNET: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_ETHERNET; +pub const IPPROTO_RAW: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_RAW; +pub const IPPROTO_MPTCP: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MPTCP; +pub const IPPROTO_MAX: _bindgen_ty_1 = _bindgen_ty_1::IPPROTO_MAX; +#[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_SCTP = 132, +IPPROTO_UDPLITE = 136, +IPPROTO_MPLS = 137, +IPPROTO_ETHERNET = 143, +IPPROTO_RAW = 255, +IPPROTO_MPTCP = 262, +IPPROTO_MAX = 263, +} +#[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 __bindgen_anon_1: ip_msfilter__bindgen_ty_1, +} +#[repr(C)] +pub struct ip_msfilter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u32; 5usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_1 { +pub imsf_multiaddr_aux: __be32, +pub imsf_interface_aux: __be32, +pub imsf_fmode_aux: __u32, +pub imsf_numsrc_aux: __u32, +pub imsf_slist: [__be32; 1usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct ip_msfilter__bindgen_ty_1__bindgen_ty_2 { +pub imsf_multiaddr: __be32, +pub imsf_interface: __be32, +pub imsf_fmode: __u32, +pub imsf_numsrc: __u32, +pub imsf_slist_flex: __IncompleteArrayField<__be32>, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_req { +pub gr_interface: __u32, +pub gr_group: __kernel_sockaddr_storage, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_source_req { +pub gsr_interface: __u32, +pub gsr_group: __kernel_sockaddr_storage, +pub gsr_source: __kernel_sockaddr_storage, +} +#[repr(C)] +pub struct group_filter { +pub __bindgen_anon_1: group_filter__bindgen_ty_1, +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1 { +pub __bindgen_anon_1: __BindgenUnionField, +pub __bindgen_anon_2: __BindgenUnionField, +pub bindgen_union_field: [u64; 34usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_1 { +pub gf_interface_aux: __u32, +pub gf_group_aux: __kernel_sockaddr_storage, +pub gf_fmode_aux: __u32, +pub gf_numsrc_aux: __u32, +pub gf_slist: [__kernel_sockaddr_storage; 1usize], +} +#[repr(C)] +pub struct group_filter__bindgen_ty_1__bindgen_ty_2 { +pub gf_interface: __u32, +pub gf_group: __kernel_sockaddr_storage, +pub gf_fmode: __u32, +pub gf_numsrc: __u32, +pub gf_slist_flex: __IncompleteArrayField<__kernel_sockaddr_storage>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct in_pktinfo { +pub ipi_ifindex: crate::ctypes::c_int, +pub ipi_spec_dst: in_addr, +pub ipi_addr: in_addr, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct sockaddr_in { +pub sin_family: __kernel_sa_family_t, +pub sin_port: __be16, +pub sin_addr: in_addr, +pub __pad: [crate::ctypes::c_uchar; 8usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct inotify_event { +pub wd: __s32, +pub mask: __u32, +pub cookie: __u32, +pub len: __u32, +pub name: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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 saddr: __be32, +pub daddr: __be32, +} +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 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 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 +} +} +#[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, +} +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; +#[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(C)] +#[derive(Copy, Clone)] +pub struct in6_addr { +pub in6_u: in6_addr__bindgen_ty_1, +} +#[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 struct sockaddr_in6 { +pub sin6_family: crate::ctypes::c_ushort, +pub sin6_port: __be16, +pub sin6_flowinfo: __be32, +pub sin6_addr: in6_addr, +pub sin6_scope_id: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6_mreq { +pub ipv6mr_multiaddr: in6_addr, +pub ipv6mr_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_flowlabel_req { +pub flr_dst: in6_addr, +pub flr_label: __be32, +pub flr_action: __u8, +pub flr_share: __u8, +pub flr_flags: __u16, +pub flr_expires: __u16, +pub flr_linger: __u16, +pub __flr_pad: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_pktinfo { +pub ipi6_addr: in6_addr, +pub ipi6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ip6_mtuinfo { +pub ip6m_addr: sockaddr_in6, +pub ip6m_mtu: __u32, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct in6_ifreq { +pub ifr6_addr: in6_addr, +pub ifr6_prefixlen: __u32, +pub ifr6_ifindex: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_rt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +pub type_: __u8, +pub segments_left: __u8, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct ipv6_opt_hdr { +pub nexthdr: __u8, +pub hdrlen: __u8, +} +#[repr(C)] +pub struct rt0_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct rt2_hdr { +pub rt_hdr: ipv6_rt_hdr, +pub reserved: __u32, +pub addr: in6_addr, +} +#[repr(C, packed)] +#[derive(Copy, Clone)] +pub struct ipv6_destopt_hao { +pub type_: __u8, +pub length: __u8, +pub addr: in6_addr, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct ipv6hdr { +pub _bitfield_align_1: [u8; 0], +pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +pub flow_lbl: [__u8; 3usize], +pub payload_len: __be16, +pub nexthdr: __u8, +pub hop_limit: __u8, +pub saddr: in6_addr, +pub daddr: in6_addr, +} +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 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 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 +} +} +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_MAX: _bindgen_ty_3 = _bindgen_ty_3::DEVCONF_MAX; +#[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_MAX = 57, +} +#[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(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, 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, +} +#[repr(C)] +#[derive(Debug)] +pub struct rand_pool_info { +pub entropy_count: crate::ctypes::c_int, +pub buf_size: crate::ctypes::c_int, +pub buf: __IncompleteArrayField<__u32>, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_timespec { +pub tv_sec: __kernel_time64_t, +pub tv_nsec: crate::ctypes::c_longlong, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_itimerspec { +pub it_interval: __kernel_timespec, +pub it_value: __kernel_timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timeval { +pub tv_sec: __kernel_long_t, +pub tv_usec: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_old_itimerval { +pub it_interval: __kernel_old_timeval, +pub it_value: __kernel_old_timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_sock_timeval { +pub tv_sec: __s64, +pub tv_usec: __s64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timespec { +pub tv_sec: __kernel_old_time_t, +pub tv_nsec: crate::ctypes::c_long, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timeval { +pub tv_sec: __kernel_old_time_t, +pub tv_usec: __kernel_suseconds_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerspec { +pub it_interval: timespec, +pub it_value: timespec, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct itimerval { +pub it_interval: timeval, +pub it_value: timeval, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct timezone { +pub tz_minuteswest: crate::ctypes::c_int, +pub tz_dsttime: crate::ctypes::c_int, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rusage { +pub ru_utime: __kernel_old_timeval, +pub ru_stime: __kernel_old_timeval, +pub ru_maxrss: __kernel_long_t, +pub ru_ixrss: __kernel_long_t, +pub ru_idrss: __kernel_long_t, +pub ru_isrss: __kernel_long_t, +pub ru_minflt: __kernel_long_t, +pub ru_majflt: __kernel_long_t, +pub ru_nswap: __kernel_long_t, +pub ru_inblock: __kernel_long_t, +pub ru_oublock: __kernel_long_t, +pub ru_msgsnd: __kernel_long_t, +pub ru_msgrcv: __kernel_long_t, +pub ru_nsignals: __kernel_long_t, +pub ru_nvcsw: __kernel_long_t, +pub ru_nivcsw: __kernel_long_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit { +pub rlim_cur: __kernel_ulong_t, +pub rlim_max: __kernel_ulong_t, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct rlimit64 { +pub rlim_cur: __u64, +pub rlim_max: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct clone_args { +pub flags: __u64, +pub pidfd: __u64, +pub child_tid: __u64, +pub parent_tid: __u64, +pub exit_signal: __u64, +pub stack: __u64, +pub stack_size: __u64, +pub tls: __u64, +pub set_tid: __u64, +pub set_tid_size: __u64, +pub cgroup: __u64, +} +pub type sigset_t = crate::ctypes::c_ulong; +pub type __signalfn_t = ::core::option::Option; +pub type __sighandler_t = __signalfn_t; +pub type __restorefn_t = ::core::option::Option; +pub type __sigrestore_t = __restorefn_t; +#[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: size_t, +} +pub type stack_t = sigaltstack; +#[repr(C)] +#[derive(Copy, Clone)] +pub union sigval { +pub sival_int: crate::ctypes::c_int, +pub sival_ptr: *mut crate::ctypes::c_void, +} +pub type sigval_t = sigval; +#[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(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(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(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, +} +#[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 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 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, +} +pub type siginfo_t = siginfo; +#[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(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(Debug, Copy, Clone)] +pub struct sigevent__bindgen_ty_1__bindgen_ty_1 { +pub _function: ::core::option::Option, +pub _attribute: *mut crate::ctypes::c_void, +} +pub type sigevent_t = sigevent; +#[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 __spare2: __u64, +pub __spare3: [__u64; 12usize], +} +#[repr(C)] +#[derive(Debug)] +pub struct sysinfo { +pub uptime: __kernel_long_t, +pub loads: [__kernel_ulong_t; 3usize], +pub totalram: __kernel_ulong_t, +pub freeram: __kernel_ulong_t, +pub sharedram: __kernel_ulong_t, +pub bufferram: __kernel_ulong_t, +pub totalswap: __kernel_ulong_t, +pub freeswap: __kernel_ulong_t, +pub procs: __u16, +pub pad: __u16, +pub totalhigh: __kernel_ulong_t, +pub freehigh: __kernel_ulong_t, +pub mem_unit: __u32, +pub _f: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct 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, +} +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 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 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 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 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 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 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 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 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 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 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 +} +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union tcp_word_hdr { +pub hdr: tcphdr, +pub words: [__be32; 5usize], +} +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; +#[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(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, +} +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; +#[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(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, +} +impl tcp_info { +#[inline] +pub fn tcpi_snd_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_snd_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_rcv_wscale(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) } +} +#[inline] +pub fn set_tcpi_rcv_wscale(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 4u8, val as u64) +} +} +#[inline] +pub fn tcpi_delivery_rate_app_limited(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u8) } +} +#[inline] +pub fn set_tcpi_delivery_rate_app_limited(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(8usize, 1u8, val as u64) +} +} +#[inline] +pub fn tcpi_fastopen_client_fail(&self) -> __u8 { +unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 2u8) as u8) } +} +#[inline] +pub fn set_tcpi_fastopen_client_fail(&mut self, val: __u8) { +unsafe { +let val: u8 = ::core::mem::transmute(val); +self._bitfield_1.set(9usize, 2u8, val as u64) +} +} +#[inline] +pub fn new_bitfield_1(tcpi_snd_wscale: __u8, tcpi_rcv_wscale: __u8, tcpi_delivery_rate_app_limited: __u8, tcpi_fastopen_client_fail: __u8) -> __BindgenBitfieldUnit<[u8; 2usize]> { +let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); +__bindgen_bitfield_unit.set(0usize, 4u8, { +let tcpi_snd_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_snd_wscale) }; +tcpi_snd_wscale as u64 +}); +__bindgen_bitfield_unit.set(4usize, 4u8, { +let tcpi_rcv_wscale: u8 = unsafe { ::core::mem::transmute(tcpi_rcv_wscale) }; +tcpi_rcv_wscale as u64 +}); +__bindgen_bitfield_unit.set(8usize, 1u8, { +let tcpi_delivery_rate_app_limited: u8 = unsafe { ::core::mem::transmute(tcpi_delivery_rate_app_limited) }; +tcpi_delivery_rate_app_limited as u64 +}); +__bindgen_bitfield_unit.set(9usize, 2u8, { +let tcpi_fastopen_client_fail: u8 = unsafe { ::core::mem::transmute(tcpi_fastopen_client_fail) }; +tcpi_fastopen_client_fail as u64 +}); +__bindgen_bitfield_unit +} +} +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; +#[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, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct tcp_md5sig { +pub tcpm_addr: __kernel_sockaddr_storage, +pub tcpm_flags: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_ifindex: crate::ctypes::c_int, +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_diag_md5sig { +pub tcpm_family: __u8, +pub tcpm_prefixlen: __u8, +pub tcpm_keylen: __u16, +pub tcpm_addr: [__be32; 4usize], +pub tcpm_key: [__u8; 80usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tcp_zerocopy_receive { +pub address: __u64, +pub length: __u32, +pub recv_skip_hint: __u32, +pub inq: __u32, +pub err: __s32, +pub copybuf_address: __u64, +pub copybuf_len: __s32, +pub flags: __u32, +pub msg_control: __u64, +pub msg_controllen: __u64, +pub msg_flags: __u32, +pub reserved: __u32, +} +pub type cc_t = crate::ctypes::c_uchar; +pub type speed_t = crate::ctypes::c_uint; +pub type tcflag_t = crate::ctypes::c_uint; +#[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 sockaddr_un { +pub sun_family: __kernel_sa_family_t, +pub sun_path: [crate::ctypes::c_char; 108usize], +} +#[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], +} +impl membarrier_cmd { +pub const MEMBARRIER_CMD_SHARED: membarrier_cmd = membarrier_cmd::MEMBARRIER_CMD_GLOBAL; +} +#[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, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum membarrier_cmd_flag { +MEMBARRIER_CMD_FLAG_CPU = 1, +} +#[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 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 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(Copy, Clone)] +pub union uffd_msg__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { +pub ptid: __u32, +} +#[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(Copy, Clone)] +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 __pad2: [__u64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_1 { +pub off: __u64, +pub addr2: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_2 { +pub addr: __u64, +pub splice_off_in: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union io_uring_sqe__bindgen_ty_3 { +pub rw_flags: __kernel_rwf_t, +pub fsync_flags: __u32, +pub poll_events: __u16, +pub poll32_events: __u32, +pub sync_range_flags: __u32, +pub msg_flags: __u32, +pub timeout_flags: __u32, +pub accept_flags: __u32, +pub cancel_flags: __u32, +pub open_flags: __u32, +pub statx_flags: __u32, +pub fadvise_advice: __u32, +pub splice_flags: __u32, +pub rename_flags: __u32, +pub unlink_flags: __u32, +pub hardlink_flags: __u32, +} +#[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 const IOSQE_FIXED_FILE_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_FIXED_FILE_BIT; +pub const IOSQE_IO_DRAIN_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_DRAIN_BIT; +pub const IOSQE_IO_LINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_LINK_BIT; +pub const IOSQE_IO_HARDLINK_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_IO_HARDLINK_BIT; +pub const IOSQE_ASYNC_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_ASYNC_BIT; +pub const IOSQE_BUFFER_SELECT_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_BUFFER_SELECT_BIT; +pub const IOSQE_CQE_SKIP_SUCCESS_BIT: _bindgen_ty_7 = _bindgen_ty_7::IOSQE_CQE_SKIP_SUCCESS_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +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, +} +pub const IORING_OP_NOP: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_NOP; +pub const IORING_OP_READV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READV; +pub const IORING_OP_WRITEV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITEV; +pub const IORING_OP_FSYNC: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FSYNC; +pub const IORING_OP_READ_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ_FIXED; +pub const IORING_OP_WRITE_FIXED: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE_FIXED; +pub const IORING_OP_POLL_ADD: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_ADD; +pub const IORING_OP_POLL_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_POLL_REMOVE; +pub const IORING_OP_SYNC_FILE_RANGE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYNC_FILE_RANGE; +pub const IORING_OP_SENDMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SENDMSG; +pub const IORING_OP_RECVMSG: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECVMSG; +pub const IORING_OP_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT; +pub const IORING_OP_TIMEOUT_REMOVE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TIMEOUT_REMOVE; +pub const IORING_OP_ACCEPT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ACCEPT; +pub const IORING_OP_ASYNC_CANCEL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_ASYNC_CANCEL; +pub const IORING_OP_LINK_TIMEOUT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINK_TIMEOUT; +pub const IORING_OP_CONNECT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CONNECT; +pub const IORING_OP_FALLOCATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FALLOCATE; +pub const IORING_OP_OPENAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT; +pub const IORING_OP_CLOSE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_CLOSE; +pub const IORING_OP_FILES_UPDATE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FILES_UPDATE; +pub const IORING_OP_STATX: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_STATX; +pub const IORING_OP_READ: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_READ; +pub const IORING_OP_WRITE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_WRITE; +pub const IORING_OP_FADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_FADVISE; +pub const IORING_OP_MADVISE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MADVISE; +pub const IORING_OP_SEND: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SEND; +pub const IORING_OP_RECV: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RECV; +pub const IORING_OP_OPENAT2: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_OPENAT2; +pub const IORING_OP_EPOLL_CTL: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_EPOLL_CTL; +pub const IORING_OP_SPLICE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SPLICE; +pub const IORING_OP_PROVIDE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_PROVIDE_BUFFERS; +pub const IORING_OP_REMOVE_BUFFERS: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_REMOVE_BUFFERS; +pub const IORING_OP_TEE: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_TEE; +pub const IORING_OP_SHUTDOWN: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SHUTDOWN; +pub const IORING_OP_RENAMEAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_RENAMEAT; +pub const IORING_OP_UNLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_UNLINKAT; +pub const IORING_OP_MKDIRAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_MKDIRAT; +pub const IORING_OP_SYMLINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_SYMLINKAT; +pub const IORING_OP_LINKAT: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LINKAT; +pub const IORING_OP_LAST: _bindgen_ty_8 = _bindgen_ty_8::IORING_OP_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_8 { +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_LAST = 40, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_cqe { +pub user_data: __u64, +pub res: __s32, +pub flags: __u32, +} +pub const IORING_CQE_BUFFER_SHIFT: _bindgen_ty_9 = _bindgen_ty_9::IORING_CQE_BUFFER_SHIFT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_9 { +IORING_CQE_BUFFER_SHIFT = 16, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_sqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub flags: __u32, +pub dropped: __u32, +pub array: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_cqring_offsets { +pub head: __u32, +pub tail: __u32, +pub ring_mask: __u32, +pub ring_entries: __u32, +pub overflow: __u32, +pub cqes: __u32, +pub flags: __u32, +pub resv1: __u32, +pub resv2: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_params { +pub sq_entries: __u32, +pub cq_entries: __u32, +pub flags: __u32, +pub sq_thread_cpu: __u32, +pub sq_thread_idle: __u32, +pub features: __u32, +pub wq_fd: __u32, +pub resv: [__u32; 3usize], +pub sq_off: io_sqring_offsets, +pub cq_off: io_cqring_offsets, +} +pub const IORING_REGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS; +pub const IORING_UNREGISTER_BUFFERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_BUFFERS; +pub const IORING_REGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES; +pub const IORING_UNREGISTER_FILES: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_FILES; +pub const IORING_REGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD; +pub const IORING_UNREGISTER_EVENTFD: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_EVENTFD; +pub const IORING_REGISTER_FILES_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE; +pub const IORING_REGISTER_EVENTFD_ASYNC: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_EVENTFD_ASYNC; +pub const IORING_REGISTER_PROBE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PROBE; +pub const IORING_REGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_PERSONALITY; +pub const IORING_UNREGISTER_PERSONALITY: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_PERSONALITY; +pub const IORING_REGISTER_RESTRICTIONS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_RESTRICTIONS; +pub const IORING_REGISTER_ENABLE_RINGS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_ENABLE_RINGS; +pub const IORING_REGISTER_FILES2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES2; +pub const IORING_REGISTER_FILES_UPDATE2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_FILES_UPDATE2; +pub const IORING_REGISTER_BUFFERS2: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS2; +pub const IORING_REGISTER_BUFFERS_UPDATE: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_BUFFERS_UPDATE; +pub const IORING_REGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_AFF; +pub const IORING_UNREGISTER_IOWQ_AFF: _bindgen_ty_10 = _bindgen_ty_10::IORING_UNREGISTER_IOWQ_AFF; +pub const IORING_REGISTER_IOWQ_MAX_WORKERS: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_IOWQ_MAX_WORKERS; +pub const IORING_REGISTER_LAST: _bindgen_ty_10 = _bindgen_ty_10::IORING_REGISTER_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_10 { +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_LAST = 20, +} +pub const IO_WQ_BOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_BOUND; +pub const IO_WQ_UNBOUND: _bindgen_ty_11 = _bindgen_ty_11::IO_WQ_UNBOUND; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_11 { +IO_WQ_BOUND = 0, +IO_WQ_UNBOUND = 1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_files_update { +pub offset: __u32, +pub resv: __u32, +pub fds: __u64, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_rsrc_register { +pub nr: __u32, +pub resv: __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, +} +#[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(Copy, Clone)] +pub union io_uring_restriction__bindgen_ty_1 { +pub register_op: __u8, +pub sqe_op: __u8, +pub sqe_flags: __u8, +} +pub const IORING_RESTRICTION_REGISTER_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_REGISTER_OP; +pub const IORING_RESTRICTION_SQE_OP: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_OP; +pub const IORING_RESTRICTION_SQE_FLAGS_ALLOWED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_ALLOWED; +pub const IORING_RESTRICTION_SQE_FLAGS_REQUIRED: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_SQE_FLAGS_REQUIRED; +pub const IORING_RESTRICTION_LAST: _bindgen_ty_12 = _bindgen_ty_12::IORING_RESTRICTION_LAST; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IORING_RESTRICTION_REGISTER_OP = 0, +IORING_RESTRICTION_SQE_OP = 1, +IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, +IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, +IORING_RESTRICTION_LAST = 4, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct io_uring_getevents_arg { +pub sigmask: __u64, +pub sigmask_sz: __u32, +pub pad: __u32, +pub ts: __u64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct sockaddr { +pub __storage: __kernel_sockaddr_storage, +} +#[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)] +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, +} +pub type socklen_t = crate::ctypes::c_uint; +#[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], +} +pub type __fsword_t = __kernel_long_t; +#[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], +} +impl user_desc { +#[inline] +pub fn seg_32bit(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_32bit(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(0usize, 1u8, val as u64) +} +} +#[inline] +pub fn contents(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u32) } +} +#[inline] +pub fn set_contents(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(1usize, 2u8, val as u64) +} +} +#[inline] +pub fn read_exec_only(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } +} +#[inline] +pub fn set_read_exec_only(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(3usize, 1u8, val as u64) +} +} +#[inline] +pub fn limit_in_pages(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } +} +#[inline] +pub fn set_limit_in_pages(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(4usize, 1u8, val as u64) +} +} +#[inline] +pub fn seg_not_present(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) } +} +#[inline] +pub fn set_seg_not_present(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(5usize, 1u8, val as u64) +} +} +#[inline] +pub fn useable(&self) -> crate::ctypes::c_uint { +unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) } +} +#[inline] +pub fn set_useable(&mut self, val: crate::ctypes::c_uint) { +unsafe { +let val: u32 = ::core::mem::transmute(val); +self._bitfield_1.set(6usize, 1u8, val as u64) +} +} +#[inline] +pub fn 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 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 +} +} +#[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: size_t, +pub msg_control: *mut crate::ctypes::c_void, +pub msg_controllen: size_t, +pub msg_flags: crate::ctypes::c_uint, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct cmsghdr { +pub cmsg_len: size_t, +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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1560 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +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 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 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 KVM_SET_BOOT_CPU_ID: u32 = 44664; +pub const KVM_SET_MP_STATE: u32 = 1074048665; +pub const KVM_GET_MP_STATE: u32 = 2147790488; +pub const KVM_SET_MEMORY_REGION: u32 = 1075359296; +pub const KVM_GET_API_VERSION: u32 = 44544; +pub const KVM_S390_GET_SKEYS: u32 = 1077980850; +pub const KVM_SET_ONE_REG: u32 = 1074835116; +pub const KVM_IRQ_LINE_STATUS: u32 = 3221794407; +pub const KVM_SET_USER_MEMORY_REGION: u32 = 1075883590; +pub const KVM_S390_INTERRUPT: u32 = 1074835092; +pub const KVM_TPR_ACCESS_REPORTING: u32 = 3223891602; +pub const KVM_GET_FPU: u32 = 2174791308; +pub const KVM_ASSIGN_SET_MSIX_ENTRY: u32 = 1074835060; +pub const KVM_MEMORY_ENCRYPT_REG_REGION: u32 = 2148576955; +pub const KVM_S390_UCAS_MAP: u32 = 1075359312; +pub const KVM_ASSIGN_SET_INTX_MASK: u32 = 1077980836; +pub const KVM_MEMORY_ENCRYPT_OP: u32 = 3221794490; +pub const KVM_CREATE_PIT2: u32 = 1077980791; +pub const KVM_S390_VCPU_FAULT: u32 = 1074310738; +pub const KVM_REGISTER_COALESCED_MMIO: u32 = 1074835047; +pub const KVM_SET_VAPIC_ADDR: u32 = 1074310803; +pub const KVM_CREATE_DEVICE: u32 = 3222056672; +pub const KVM_GET_IRQCHIP: u32 = 3255348834; +pub const KVM_TRANSLATE: u32 = 3222843013; +pub const KVM_S390_SET_INITIAL_PSW: u32 = 1074835094; +pub const KVM_X86_SETUP_MCE: u32 = 1074310812; +pub const KVM_DEASSIGN_PCI_DEVICE: u32 = 1077980786; +pub const KVM_XEN_HVM_SET_ATTR: u32 = 1078505161; +pub const KVM_GET_CLOCK: u32 = 2150674044; +pub const KVM_SET_FPU: u32 = 1101049485; +pub const KVM_KVMCLOCK_CTRL: u32 = 44717; +pub const KVM_GET_SREGS2: u32 = 2168499916; +pub const KVM_PPC_GET_PVINFO: u32 = 1082175137; +pub const KVM_X86_GET_MCE_CAP_SUPPORTED: u32 = 2148052637; +pub const KVM_S390_GET_IRQ_STATE: u32 = 1075883702; +pub const KVM_GET_DEVICE_ATTR: u32 = 1075359458; +pub const KVM_S390_INITIAL_RESET: u32 = 44695; +pub const KVM_SET_REGS: u32 = 1083223682; +pub const KVM_GET_TSC_KHZ: u32 = 44707; +pub const KVM_CHECK_EXTENSION: u32 = 44547; +pub const KVM_PPC_RESIZE_HPT_COMMIT: u32 = 2148576942; +pub const KVM_GET_DIRTY_LOG: u32 = 1074835010; +pub const KVM_S390_SET_IRQ_STATE: u32 = 1075883701; +pub const KVM_S390_NORMAL_RESET: u32 = 44739; +pub const KVM_SET_SIGNAL_MASK: u32 = 1074048651; +pub const KVM_XEN_VCPU_SET_ATTR: u32 = 1078505163; +pub const KVM_SET_GSI_ROUTING: u32 = 1074310762; +pub const KVM_CREATE_VCPU: u32 = 44609; +pub const KVM_S390_UCAS_UNMAP: u32 = 1075359313; +pub const KVM_S390_STORE_STATUS: u32 = 1074310805; +pub const KVM_UNREGISTER_COALESCED_MMIO: u32 = 1074835048; +pub const KVM_ASSIGN_DEV_IRQ: u32 = 1077980784; +pub const KVM_S390_PV_COMMAND: u32 = 3223367365; +pub const KVM_S390_ENABLE_SIE: u32 = 44550; +pub const KVM_CLEAR_DIRTY_LOG: u32 = 3222843072; +pub const KVM_GET_ONE_REG: u32 = 1074835115; +pub const KVM_ARM_SET_DEVICE_ADDR: u32 = 1074835115; +pub const KVM_DIRTY_TLB: u32 = 1074835114; +pub const KVM_NMI: u32 = 44698; +pub const KVM_HYPERV_EVENTFD: u32 = 1075359421; +pub const KVM_S390_MEM_OP: u32 = 1077980849; +pub const KVM_PPC_SVM_OFF: u32 = 44723; +pub const KVM_PPC_RESIZE_HPT_PREPARE: u32 = 2148576941; +pub const KVM_INTERRUPT: u32 = 1074048646; +pub const KVM_XEN_HVM_GET_ATTR: u32 = 3225988808; +pub const KVM_GET_SREGS: u32 = 2167975555; +pub const KVM_SET_IDENTITY_MAP_ADDR: u32 = 1074310728; +pub const KVM_GET_REGS: u32 = 2156965505; +pub const KVM_S390_GET_CMMA_BITS: u32 = 3223367352; +pub const KVM_CREATE_IRQCHIP: u32 = 44640; +pub const KVM_ASSIGN_PCI_DEVICE: u32 = 2151722601; +pub const KVM_SET_NR_MMU_PAGES: u32 = 44612; +pub const KVM_IOEVENTFD: u32 = 1077980793; +pub const KVM_RUN: u32 = 44672; +pub const KVM_S390_SET_SKEYS: u32 = 1077980851; +pub const KVM_SET_DEVICE_ATTR: u32 = 1075359457; +pub const KVM_DEASSIGN_DEV_IRQ: u32 = 1077980789; +pub const KVM_SMI: u32 = 44727; +pub const KVM_SET_TSS_ADDR: u32 = 44615; +pub const KVM_GET_NR_MMU_PAGES: u32 = 44613; +pub const KVM_XEN_VCPU_GET_ATTR: u32 = 3225988810; +pub const KVM_REINJECT_CONTROL: u32 = 44657; +pub const KVM_HAS_DEVICE_ATTR: u32 = 1075359459; +pub const KVM_IRQFD: u32 = 1075883638; +pub const KVM_S390_SET_CMMA_BITS: u32 = 1075883705; +pub const KVM_SET_IRQCHIP: u32 = 2181607011; +pub const KVM_SET_SREGS2: u32 = 1094758093; +pub const KVM_SIGNAL_MSI: u32 = 1075883685; +pub const KVM_GET_VCPU_MMAP_SIZE: u32 = 44548; +pub const KVM_CREATE_VM: u32 = 44545; +pub const KVM_S390_CLEAR_RESET: u32 = 44740; +pub const KVM_RESET_DIRTY_RINGS: u32 = 44743; +pub const KVM_ASSIGN_SET_MSIX_NR: u32 = 1074310771; +pub const KVM_CREATE_PIT: u32 = 44644; +pub const KVM_SET_GUEST_DEBUG: u32 = 1078505115; +pub const KVM_GET_REG_LIST: u32 = 3221794480; +pub const KVM_ARM_VCPU_FINALIZE: u32 = 1074048706; +pub const KVM_SET_CLOCK: u32 = 1076932219; +pub const KVM_PPC_ALLOCATE_HTAB: u32 = 3221532327; +pub const KVM_PPC_GET_SMMU_INFO: u32 = 2186325670; +pub const KVM_SET_TSC_KHZ: u32 = 44706; +pub const KVM_S390_IRQ: u32 = 1078505140; +pub const KVM_ENABLE_CAP: u32 = 1080602275; +pub const KVM_IRQ_LINE: u32 = 1074310753; +pub const KVM_SET_SREGS: u32 = 1094233732; +pub const KVM_MEMORY_ENCRYPT_UNREG_REGION: u32 = 2148576956; +pub const KVM_GET_STATS_FD: u32 = 44750; +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 SIOCSNETADDR: u32 = 1074039264; +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 OSIOCSNETADDR: u32 = 1074039264; +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 F2FS_IOC_ABORT_VOLATILE_WRITE: u32 = 62725; +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 SIOCGNETADDR: u32 = 2147781089; +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 OSIOCGNETADDR: u32 = 2147781089; +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/netlink.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/netlink.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/netlink.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/linux-raw-sys/src/x86_64/netlink.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2683 @@ +/* automatically generated by rust-bindgen 0.59.2 */ + +#[repr(C)] +#[derive(Default)] +pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); +impl __IncompleteArrayField { +#[inline] +pub const fn new() -> Self { +__IncompleteArrayField(::core::marker::PhantomData, []) +} +#[inline] +pub fn as_ptr(&self) -> *const T { +self as *const _ as *const T +} +#[inline] +pub fn as_mut_ptr(&mut self) -> *mut T { +self as *mut _ as *mut T +} +#[inline] +pub unsafe fn as_slice(&self, len: usize) -> &[T] { +::core::slice::from_raw_parts(self.as_ptr(), len) +} +#[inline] +pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { +::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) +} +} +impl ::core::fmt::Debug for __IncompleteArrayField { +fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { +fmt.write_str("__IncompleteArrayField") +} +} +pub const LINUX_VERSION_CODE: u32 = 332032; +pub const LINUX_VERSION_MAJOR: u32 = 5; +pub const LINUX_VERSION_PATCHLEVEL: u32 = 17; +pub const LINUX_VERSION_SUBLEVEL: u32 = 0; +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 __BITS_PER_LONG: u32 = 64; +pub const __FD_SETSIZE: u32 = 1024; +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_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 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 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 NUD_INCOMPLETE: u32 = 1; +pub const NUD_REACHABLE: u32 = 2; +pub const NUD_STALE: u32 = 4; +pub const NUD_DELAY: u32 = 8; +pub const NUD_PROBE: u32 = 16; +pub const NUD_FAILED: u32 = 32; +pub const NUD_NOARP: u32 = 64; +pub const NUD_PERMANENT: u32 = 128; +pub const NUD_NONE: u32 = 0; +pub const RTNL_FAMILY_IPMR: u32 = 128; +pub const RTNL_FAMILY_IP6MR: u32 = 129; +pub const RTNL_FAMILY_MAX: u32 = 129; +pub const RTA_ALIGNTO: u32 = 4; +pub const RTPROT_UNSPEC: u32 = 0; +pub const RTPROT_REDIRECT: u32 = 1; +pub const RTPROT_KERNEL: u32 = 2; +pub const RTPROT_BOOT: u32 = 3; +pub const RTPROT_STATIC: u32 = 4; +pub const RTPROT_GATED: u32 = 8; +pub const RTPROT_RA: u32 = 9; +pub const RTPROT_MRT: u32 = 10; +pub const RTPROT_ZEBRA: u32 = 11; +pub const RTPROT_BIRD: u32 = 12; +pub const RTPROT_DNROUTED: u32 = 13; +pub const RTPROT_XORP: u32 = 14; +pub const RTPROT_NTK: u32 = 15; +pub const RTPROT_DHCP: u32 = 16; +pub const RTPROT_MROUTED: u32 = 17; +pub const RTPROT_KEEPALIVED: u32 = 18; +pub const RTPROT_BABEL: u32 = 42; +pub const RTPROT_OPENR: u32 = 99; +pub const RTPROT_BGP: u32 = 186; +pub const RTPROT_ISIS: u32 = 187; +pub const RTPROT_OSPF: u32 = 188; +pub const RTPROT_RIP: u32 = 189; +pub const RTPROT_EIGRP: u32 = 192; +pub const RTM_F_NOTIFY: u32 = 256; +pub const RTM_F_CLONED: u32 = 512; +pub const RTM_F_EQUALIZE: u32 = 1024; +pub const RTM_F_PREFIX: u32 = 2048; +pub const RTM_F_LOOKUP_TABLE: u32 = 4096; +pub const RTM_F_FIB_MATCH: u32 = 8192; +pub const RTM_F_OFFLOAD: u32 = 16384; +pub const RTM_F_TRAP: u32 = 32768; +pub const RTM_F_OFFLOAD_FAILED: u32 = 536870912; +pub const RTNH_F_DEAD: u32 = 1; +pub const RTNH_F_PERVASIVE: u32 = 2; +pub const RTNH_F_ONLINK: u32 = 4; +pub const RTNH_F_OFFLOAD: u32 = 8; +pub const RTNH_F_LINKDOWN: u32 = 16; +pub const RTNH_F_UNRESOLVED: u32 = 32; +pub const RTNH_F_TRAP: u32 = 64; +pub const RTNH_COMPARE_MASK: u32 = 89; +pub const RTNH_ALIGNTO: u32 = 4; +pub const RTNETLINK_HAVE_PEERINFO: u32 = 1; +pub const RTAX_FEATURE_ECN: u32 = 1; +pub const RTAX_FEATURE_SACK: u32 = 2; +pub const RTAX_FEATURE_TIMESTAMP: u32 = 4; +pub const RTAX_FEATURE_ALLFRAG: u32 = 8; +pub const RTAX_FEATURE_MASK: u32 = 15; +pub const TCM_IFINDEX_MAGIC_BLOCK: u32 = 4294967295; +pub const TCA_DUMP_FLAGS_TERSE: u32 = 1; +pub const RTMGRP_LINK: u32 = 1; +pub const RTMGRP_NOTIFY: u32 = 2; +pub const RTMGRP_NEIGH: u32 = 4; +pub const RTMGRP_TC: u32 = 8; +pub const RTMGRP_IPV4_IFADDR: u32 = 16; +pub const RTMGRP_IPV4_MROUTE: u32 = 32; +pub const RTMGRP_IPV4_ROUTE: u32 = 64; +pub const RTMGRP_IPV4_RULE: u32 = 128; +pub const RTMGRP_IPV6_IFADDR: u32 = 256; +pub const RTMGRP_IPV6_MROUTE: u32 = 512; +pub const RTMGRP_IPV6_ROUTE: u32 = 1024; +pub const RTMGRP_IPV6_IFINFO: u32 = 2048; +pub const RTMGRP_DECnet_IFADDR: u32 = 4096; +pub const RTMGRP_DECnet_ROUTE: u32 = 16384; +pub const RTMGRP_IPV6_PREFIX: u32 = 131072; +pub const TCA_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_LARGE_DUMP_ON: u32 = 1; +pub const TCA_ACT_FLAG_TERSE_DUMP: u32 = 2; +pub const RTEXT_FILTER_VF: u32 = 1; +pub const RTEXT_FILTER_BRVLAN: u32 = 2; +pub const RTEXT_FILTER_BRVLAN_COMPRESSED: u32 = 4; +pub const RTEXT_FILTER_SKIP_STATS: u32 = 8; +pub const RTEXT_FILTER_MRP: u32 = 16; +pub const RTEXT_FILTER_CFM_CONFIG: u32 = 32; +pub const RTEXT_FILTER_CFM_STATUS: u32 = 64; +pub type size_t = crate::ctypes::c_ulong; +pub type ssize_t = crate::ctypes::c_long; +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(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(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], +} +pub type __s8 = crate::ctypes::c_schar; +pub type __u8 = crate::ctypes::c_uchar; +pub type __s16 = crate::ctypes::c_short; +pub type __u16 = 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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fd_set { +pub fds_bits: [crate::ctypes::c_ulong; 16usize], +} +pub type __kernel_sighandler_t = ::core::option::Option; +pub type __kernel_key_t = crate::ctypes::c_int; +pub type __kernel_mqd_t = crate::ctypes::c_int; +pub type __kernel_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; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct __kernel_fsid_t { +pub val: [crate::ctypes::c_int; 2usize], +} +pub type __kernel_off_t = __kernel_long_t; +pub type __kernel_loff_t = crate::ctypes::c_longlong; +pub type __kernel_old_time_t = __kernel_long_t; +pub type __kernel_time_t = __kernel_long_t; +pub type __kernel_time64_t = crate::ctypes::c_longlong; +pub type __kernel_clock_t = __kernel_long_t; +pub type __kernel_timer_t = crate::ctypes::c_int; +pub type __kernel_clockid_t = crate::ctypes::c_int; +pub type __kernel_caddr_t = *mut 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_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, +} +impl nlmsgerr_attrs { +pub const NLMSGERR_ATTR_MAX: nlmsgerr_attrs = nlmsgerr_attrs::NLMSGERR_ATTR_POLICY; +} +#[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_MAX = 5, +} +#[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(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, +} +pub const NETLINK_UNCONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_UNCONNECTED; +pub const NETLINK_CONNECTED: _bindgen_ty_1 = _bindgen_ty_1::NETLINK_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_1 { +NETLINK_UNCONNECTED = 0, +NETLINK_CONNECTED = 1, +} +#[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(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, +} +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; +} +#[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(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, +} +#[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, +} +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_MAX: _bindgen_ty_2 = _bindgen_ty_2::__IFLA_MAX; +#[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_MAX = 59, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +pub const IFLA_BR_UNSPEC: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_UNSPEC; +pub const IFLA_BR_FORWARD_DELAY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FORWARD_DELAY; +pub const IFLA_BR_HELLO_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIME; +pub const IFLA_BR_MAX_AGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MAX_AGE; +pub const IFLA_BR_AGEING_TIME: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_AGEING_TIME; +pub const IFLA_BR_STP_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_STP_STATE; +pub const IFLA_BR_PRIORITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PRIORITY; +pub const IFLA_BR_VLAN_FILTERING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_FILTERING; +pub const IFLA_BR_VLAN_PROTOCOL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_PROTOCOL; +pub const IFLA_BR_GROUP_FWD_MASK: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_FWD_MASK; +pub const IFLA_BR_ROOT_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_ID; +pub const IFLA_BR_BRIDGE_ID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_BRIDGE_ID; +pub const IFLA_BR_ROOT_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PORT; +pub const IFLA_BR_ROOT_PATH_COST: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_ROOT_PATH_COST; +pub const IFLA_BR_TOPOLOGY_CHANGE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE; +pub const IFLA_BR_TOPOLOGY_CHANGE_DETECTED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_DETECTED; +pub const IFLA_BR_HELLO_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_HELLO_TIMER; +pub const IFLA_BR_TCN_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TCN_TIMER; +pub const IFLA_BR_TOPOLOGY_CHANGE_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_TOPOLOGY_CHANGE_TIMER; +pub const IFLA_BR_GC_TIMER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GC_TIMER; +pub const IFLA_BR_GROUP_ADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_GROUP_ADDR; +pub const IFLA_BR_FDB_FLUSH: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_FDB_FLUSH; +pub const IFLA_BR_MCAST_ROUTER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_ROUTER; +pub const IFLA_BR_MCAST_SNOOPING: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_SNOOPING; +pub const IFLA_BR_MCAST_QUERY_USE_IFADDR: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_USE_IFADDR; +pub const IFLA_BR_MCAST_QUERIER: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER; +pub const IFLA_BR_MCAST_HASH_ELASTICITY: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_ELASTICITY; +pub const IFLA_BR_MCAST_HASH_MAX: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_HASH_MAX; +pub const IFLA_BR_MCAST_LAST_MEMBER_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_CNT; +pub const IFLA_BR_MCAST_STARTUP_QUERY_CNT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_CNT; +pub const IFLA_BR_MCAST_LAST_MEMBER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_LAST_MEMBER_INTVL; +pub const IFLA_BR_MCAST_MEMBERSHIP_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MEMBERSHIP_INTVL; +pub const IFLA_BR_MCAST_QUERIER_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_INTVL; +pub const IFLA_BR_MCAST_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_INTVL; +pub const IFLA_BR_MCAST_QUERY_RESPONSE_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERY_RESPONSE_INTVL; +pub const IFLA_BR_MCAST_STARTUP_QUERY_INTVL: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STARTUP_QUERY_INTVL; +pub const IFLA_BR_NF_CALL_IPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IPTABLES; +pub const IFLA_BR_NF_CALL_IP6TABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_IP6TABLES; +pub const IFLA_BR_NF_CALL_ARPTABLES: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_NF_CALL_ARPTABLES; +pub const IFLA_BR_VLAN_DEFAULT_PVID: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_DEFAULT_PVID; +pub const IFLA_BR_PAD: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_PAD; +pub const IFLA_BR_VLAN_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_ENABLED; +pub const IFLA_BR_MCAST_STATS_ENABLED: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_STATS_ENABLED; +pub const IFLA_BR_MCAST_IGMP_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_IGMP_VERSION; +pub const IFLA_BR_MCAST_MLD_VERSION: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_MLD_VERSION; +pub const IFLA_BR_VLAN_STATS_PER_PORT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_VLAN_STATS_PER_PORT; +pub const IFLA_BR_MULTI_BOOLOPT: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MULTI_BOOLOPT; +pub const IFLA_BR_MCAST_QUERIER_STATE: _bindgen_ty_6 = _bindgen_ty_6::IFLA_BR_MCAST_QUERIER_STATE; +pub const __IFLA_BR_MAX: _bindgen_ty_6 = _bindgen_ty_6::__IFLA_BR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_6 { +IFLA_BR_UNSPEC = 0, +IFLA_BR_FORWARD_DELAY = 1, +IFLA_BR_HELLO_TIME = 2, +IFLA_BR_MAX_AGE = 3, +IFLA_BR_AGEING_TIME = 4, +IFLA_BR_STP_STATE = 5, +IFLA_BR_PRIORITY = 6, +IFLA_BR_VLAN_FILTERING = 7, +IFLA_BR_VLAN_PROTOCOL = 8, +IFLA_BR_GROUP_FWD_MASK = 9, +IFLA_BR_ROOT_ID = 10, +IFLA_BR_BRIDGE_ID = 11, +IFLA_BR_ROOT_PORT = 12, +IFLA_BR_ROOT_PATH_COST = 13, +IFLA_BR_TOPOLOGY_CHANGE = 14, +IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 15, +IFLA_BR_HELLO_TIMER = 16, +IFLA_BR_TCN_TIMER = 17, +IFLA_BR_TOPOLOGY_CHANGE_TIMER = 18, +IFLA_BR_GC_TIMER = 19, +IFLA_BR_GROUP_ADDR = 20, +IFLA_BR_FDB_FLUSH = 21, +IFLA_BR_MCAST_ROUTER = 22, +IFLA_BR_MCAST_SNOOPING = 23, +IFLA_BR_MCAST_QUERY_USE_IFADDR = 24, +IFLA_BR_MCAST_QUERIER = 25, +IFLA_BR_MCAST_HASH_ELASTICITY = 26, +IFLA_BR_MCAST_HASH_MAX = 27, +IFLA_BR_MCAST_LAST_MEMBER_CNT = 28, +IFLA_BR_MCAST_STARTUP_QUERY_CNT = 29, +IFLA_BR_MCAST_LAST_MEMBER_INTVL = 30, +IFLA_BR_MCAST_MEMBERSHIP_INTVL = 31, +IFLA_BR_MCAST_QUERIER_INTVL = 32, +IFLA_BR_MCAST_QUERY_INTVL = 33, +IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 34, +IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 35, +IFLA_BR_NF_CALL_IPTABLES = 36, +IFLA_BR_NF_CALL_IP6TABLES = 37, +IFLA_BR_NF_CALL_ARPTABLES = 38, +IFLA_BR_VLAN_DEFAULT_PVID = 39, +IFLA_BR_PAD = 40, +IFLA_BR_VLAN_STATS_ENABLED = 41, +IFLA_BR_MCAST_STATS_ENABLED = 42, +IFLA_BR_MCAST_IGMP_VERSION = 43, +IFLA_BR_MCAST_MLD_VERSION = 44, +IFLA_BR_VLAN_STATS_PER_PORT = 45, +IFLA_BR_MULTI_BOOLOPT = 46, +IFLA_BR_MCAST_QUERIER_STATE = 47, +__IFLA_BR_MAX = 48, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_bridge_id { +pub prio: [__u8; 2usize], +pub addr: [__u8; 6usize], +} +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; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_7 { +BRIDGE_MODE_UNSPEC = 0, +BRIDGE_MODE_HAIRPIN = 1, +} +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_MAX: _bindgen_ty_8 = _bindgen_ty_8::__IFLA_BRPORT_MAX; +#[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_MAX = 39, +} +#[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, +} +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; +#[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, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_flags { +pub flags: __u32, +pub mask: __u32, +} +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; +#[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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vlan_qos_mapping { +pub from: __u32, +pub to: __u32, +} +pub const IFLA_MACVLAN_UNSPEC: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_UNSPEC; +pub const IFLA_MACVLAN_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MODE; +pub const IFLA_MACVLAN_FLAGS: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_FLAGS; +pub const IFLA_MACVLAN_MACADDR_MODE: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_MODE; +pub const IFLA_MACVLAN_MACADDR: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR; +pub const IFLA_MACVLAN_MACADDR_DATA: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_DATA; +pub const IFLA_MACVLAN_MACADDR_COUNT: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_MACADDR_COUNT; +pub const IFLA_MACVLAN_BC_QUEUE_LEN: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN; +pub const IFLA_MACVLAN_BC_QUEUE_LEN_USED: _bindgen_ty_12 = _bindgen_ty_12::IFLA_MACVLAN_BC_QUEUE_LEN_USED; +pub const __IFLA_MACVLAN_MAX: _bindgen_ty_12 = _bindgen_ty_12::__IFLA_MACVLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_12 { +IFLA_MACVLAN_UNSPEC = 0, +IFLA_MACVLAN_MODE = 1, +IFLA_MACVLAN_FLAGS = 2, +IFLA_MACVLAN_MACADDR_MODE = 3, +IFLA_MACVLAN_MACADDR = 4, +IFLA_MACVLAN_MACADDR_DATA = 5, +IFLA_MACVLAN_MACADDR_COUNT = 6, +IFLA_MACVLAN_BC_QUEUE_LEN = 7, +IFLA_MACVLAN_BC_QUEUE_LEN_USED = 8, +__IFLA_MACVLAN_MAX = 9, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_mode { +MACVLAN_MODE_PRIVATE = 1, +MACVLAN_MODE_VEPA = 2, +MACVLAN_MODE_BRIDGE = 4, +MACVLAN_MODE_PASSTHRU = 8, +MACVLAN_MODE_SOURCE = 16, +} +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum macvlan_macaddr_mode { +MACVLAN_MACADDR_ADD = 0, +MACVLAN_MACADDR_DEL = 1, +MACVLAN_MACADDR_FLUSH = 2, +MACVLAN_MACADDR_SET = 3, +} +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; +#[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, +} +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; +#[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, +} +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; +#[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, +} +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_MAX: _bindgen_ty_16 = _bindgen_ty_16::__IFLA_XFRM_MAX; +#[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_MAX = 3, +} +impl macsec_validation_type { +pub const MACSEC_VALIDATE_MAX: macsec_validation_type = macsec_validation_type::MACSEC_VALIDATE_STRICT; +} +#[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, +} +impl macsec_offload { +pub const MACSEC_OFFLOAD_MAX: macsec_offload = macsec_offload::MACSEC_OFFLOAD_MAC; +} +#[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, +} +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; +#[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, +} +pub const IFLA_VXLAN_UNSPEC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UNSPEC; +pub const IFLA_VXLAN_ID: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_ID; +pub const IFLA_VXLAN_GROUP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP; +pub const IFLA_VXLAN_LINK: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LINK; +pub const IFLA_VXLAN_LOCAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL; +pub const IFLA_VXLAN_TTL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL; +pub const IFLA_VXLAN_TOS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TOS; +pub const IFLA_VXLAN_LEARNING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LEARNING; +pub const IFLA_VXLAN_AGEING: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_AGEING; +pub const IFLA_VXLAN_LIMIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LIMIT; +pub const IFLA_VXLAN_PORT_RANGE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT_RANGE; +pub const IFLA_VXLAN_PROXY: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PROXY; +pub const IFLA_VXLAN_RSC: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_RSC; +pub const IFLA_VXLAN_L2MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L2MISS; +pub const IFLA_VXLAN_L3MISS: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_L3MISS; +pub const IFLA_VXLAN_PORT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_PORT; +pub const IFLA_VXLAN_GROUP6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GROUP6; +pub const IFLA_VXLAN_LOCAL6: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LOCAL6; +pub const IFLA_VXLAN_UDP_CSUM: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_CSUM; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_TX; +pub const IFLA_VXLAN_UDP_ZERO_CSUM6_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_UDP_ZERO_CSUM6_RX; +pub const IFLA_VXLAN_REMCSUM_TX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_TX; +pub const IFLA_VXLAN_REMCSUM_RX: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_RX; +pub const IFLA_VXLAN_GBP: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GBP; +pub const IFLA_VXLAN_REMCSUM_NOPARTIAL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_REMCSUM_NOPARTIAL; +pub const IFLA_VXLAN_COLLECT_METADATA: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_COLLECT_METADATA; +pub const IFLA_VXLAN_LABEL: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_LABEL; +pub const IFLA_VXLAN_GPE: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_GPE; +pub const IFLA_VXLAN_TTL_INHERIT: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_TTL_INHERIT; +pub const IFLA_VXLAN_DF: _bindgen_ty_18 = _bindgen_ty_18::IFLA_VXLAN_DF; +pub const __IFLA_VXLAN_MAX: _bindgen_ty_18 = _bindgen_ty_18::__IFLA_VXLAN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_18 { +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_MAX = 30, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vxlan_port_range { +pub low: __be16, +pub high: __be16, +} +impl ifla_vxlan_df { +pub const VXLAN_DF_MAX: ifla_vxlan_df = ifla_vxlan_df::VXLAN_DF_INHERIT; +} +#[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, +} +pub const IFLA_GENEVE_UNSPEC: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UNSPEC; +pub const IFLA_GENEVE_ID: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_ID; +pub const IFLA_GENEVE_REMOTE: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE; +pub const IFLA_GENEVE_TTL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL; +pub const IFLA_GENEVE_TOS: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TOS; +pub const IFLA_GENEVE_PORT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_PORT; +pub const IFLA_GENEVE_COLLECT_METADATA: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_COLLECT_METADATA; +pub const IFLA_GENEVE_REMOTE6: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_REMOTE6; +pub const IFLA_GENEVE_UDP_CSUM: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_CSUM; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_TX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_TX; +pub const IFLA_GENEVE_UDP_ZERO_CSUM6_RX: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_UDP_ZERO_CSUM6_RX; +pub const IFLA_GENEVE_LABEL: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_LABEL; +pub const IFLA_GENEVE_TTL_INHERIT: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_TTL_INHERIT; +pub const IFLA_GENEVE_DF: _bindgen_ty_19 = _bindgen_ty_19::IFLA_GENEVE_DF; +pub const __IFLA_GENEVE_MAX: _bindgen_ty_19 = _bindgen_ty_19::__IFLA_GENEVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_19 { +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_MAX = 14, +} +impl ifla_geneve_df { +pub const GENEVE_DF_MAX: ifla_geneve_df = ifla_geneve_df::GENEVE_DF_INHERIT; +} +#[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, +} +pub const IFLA_BAREUDP_UNSPEC: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_UNSPEC; +pub const IFLA_BAREUDP_PORT: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_PORT; +pub const IFLA_BAREUDP_ETHERTYPE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_ETHERTYPE; +pub const IFLA_BAREUDP_SRCPORT_MIN: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_SRCPORT_MIN; +pub const IFLA_BAREUDP_MULTIPROTO_MODE: _bindgen_ty_20 = _bindgen_ty_20::IFLA_BAREUDP_MULTIPROTO_MODE; +pub const __IFLA_BAREUDP_MAX: _bindgen_ty_20 = _bindgen_ty_20::__IFLA_BAREUDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_20 { +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, +} +pub const IFLA_PPP_UNSPEC: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_UNSPEC; +pub const IFLA_PPP_DEV_FD: _bindgen_ty_21 = _bindgen_ty_21::IFLA_PPP_DEV_FD; +pub const __IFLA_PPP_MAX: _bindgen_ty_21 = _bindgen_ty_21::__IFLA_PPP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_21 { +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, +} +pub const IFLA_GTP_UNSPEC: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_UNSPEC; +pub const IFLA_GTP_FD0: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD0; +pub const IFLA_GTP_FD1: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_FD1; +pub const IFLA_GTP_PDP_HASHSIZE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_PDP_HASHSIZE; +pub const IFLA_GTP_ROLE: _bindgen_ty_22 = _bindgen_ty_22::IFLA_GTP_ROLE; +pub const __IFLA_GTP_MAX: _bindgen_ty_22 = _bindgen_ty_22::__IFLA_GTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_22 { +IFLA_GTP_UNSPEC = 0, +IFLA_GTP_FD0 = 1, +IFLA_GTP_FD1 = 2, +IFLA_GTP_PDP_HASHSIZE = 3, +IFLA_GTP_ROLE = 4, +__IFLA_GTP_MAX = 5, +} +pub const IFLA_BOND_UNSPEC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UNSPEC; +pub const IFLA_BOND_MODE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MODE; +pub const IFLA_BOND_ACTIVE_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ACTIVE_SLAVE; +pub const IFLA_BOND_MIIMON: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIIMON; +pub const IFLA_BOND_UPDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_UPDELAY; +pub const IFLA_BOND_DOWNDELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_DOWNDELAY; +pub const IFLA_BOND_USE_CARRIER: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_USE_CARRIER; +pub const IFLA_BOND_ARP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_INTERVAL; +pub const IFLA_BOND_ARP_IP_TARGET: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_IP_TARGET; +pub const IFLA_BOND_ARP_VALIDATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_VALIDATE; +pub const IFLA_BOND_ARP_ALL_TARGETS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ARP_ALL_TARGETS; +pub const IFLA_BOND_PRIMARY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY; +pub const IFLA_BOND_PRIMARY_RESELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PRIMARY_RESELECT; +pub const IFLA_BOND_FAIL_OVER_MAC: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_FAIL_OVER_MAC; +pub const IFLA_BOND_XMIT_HASH_POLICY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_XMIT_HASH_POLICY; +pub const IFLA_BOND_RESEND_IGMP: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_RESEND_IGMP; +pub const IFLA_BOND_NUM_PEER_NOTIF: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_NUM_PEER_NOTIF; +pub const IFLA_BOND_ALL_SLAVES_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_ALL_SLAVES_ACTIVE; +pub const IFLA_BOND_MIN_LINKS: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MIN_LINKS; +pub const IFLA_BOND_LP_INTERVAL: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_LP_INTERVAL; +pub const IFLA_BOND_PACKETS_PER_SLAVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PACKETS_PER_SLAVE; +pub const IFLA_BOND_AD_LACP_RATE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_RATE; +pub const IFLA_BOND_AD_SELECT: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_SELECT; +pub const IFLA_BOND_AD_INFO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_INFO; +pub const IFLA_BOND_AD_ACTOR_SYS_PRIO: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYS_PRIO; +pub const IFLA_BOND_AD_USER_PORT_KEY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_USER_PORT_KEY; +pub const IFLA_BOND_AD_ACTOR_SYSTEM: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_ACTOR_SYSTEM; +pub const IFLA_BOND_TLB_DYNAMIC_LB: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_TLB_DYNAMIC_LB; +pub const IFLA_BOND_PEER_NOTIF_DELAY: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_PEER_NOTIF_DELAY; +pub const IFLA_BOND_AD_LACP_ACTIVE: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_AD_LACP_ACTIVE; +pub const IFLA_BOND_MISSED_MAX: _bindgen_ty_23 = _bindgen_ty_23::IFLA_BOND_MISSED_MAX; +pub const __IFLA_BOND_MAX: _bindgen_ty_23 = _bindgen_ty_23::__IFLA_BOND_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_23 { +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_MAX = 31, +} +pub const IFLA_BOND_AD_INFO_UNSPEC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_UNSPEC; +pub const IFLA_BOND_AD_INFO_AGGREGATOR: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_AGGREGATOR; +pub const IFLA_BOND_AD_INFO_NUM_PORTS: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_NUM_PORTS; +pub const IFLA_BOND_AD_INFO_ACTOR_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_ACTOR_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_KEY: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_KEY; +pub const IFLA_BOND_AD_INFO_PARTNER_MAC: _bindgen_ty_24 = _bindgen_ty_24::IFLA_BOND_AD_INFO_PARTNER_MAC; +pub const __IFLA_BOND_AD_INFO_MAX: _bindgen_ty_24 = _bindgen_ty_24::__IFLA_BOND_AD_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_24 { +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, +} +pub const IFLA_BOND_SLAVE_UNSPEC: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_UNSPEC; +pub const IFLA_BOND_SLAVE_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_STATE; +pub const IFLA_BOND_SLAVE_MII_STATUS: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_MII_STATUS; +pub const IFLA_BOND_SLAVE_LINK_FAILURE_COUNT: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_LINK_FAILURE_COUNT; +pub const IFLA_BOND_SLAVE_PERM_HWADDR: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_PERM_HWADDR; +pub const IFLA_BOND_SLAVE_QUEUE_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_QUEUE_ID; +pub const IFLA_BOND_SLAVE_AD_AGGREGATOR_ID: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_AGGREGATOR_ID; +pub const IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE; +pub const IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE: _bindgen_ty_25 = _bindgen_ty_25::IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE; +pub const __IFLA_BOND_SLAVE_MAX: _bindgen_ty_25 = _bindgen_ty_25::__IFLA_BOND_SLAVE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_25 { +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_MAX = 9, +} +pub const IFLA_VF_INFO_UNSPEC: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO_UNSPEC; +pub const IFLA_VF_INFO: _bindgen_ty_26 = _bindgen_ty_26::IFLA_VF_INFO; +pub const __IFLA_VF_INFO_MAX: _bindgen_ty_26 = _bindgen_ty_26::__IFLA_VF_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_26 { +IFLA_VF_INFO_UNSPEC = 0, +IFLA_VF_INFO = 1, +__IFLA_VF_INFO_MAX = 2, +} +pub const IFLA_VF_UNSPEC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_UNSPEC; +pub const IFLA_VF_MAC: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_MAC; +pub const IFLA_VF_VLAN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN; +pub const IFLA_VF_TX_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TX_RATE; +pub const IFLA_VF_SPOOFCHK: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_SPOOFCHK; +pub const IFLA_VF_LINK_STATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_LINK_STATE; +pub const IFLA_VF_RATE: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RATE; +pub const IFLA_VF_RSS_QUERY_EN: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_RSS_QUERY_EN; +pub const IFLA_VF_STATS: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_STATS; +pub const IFLA_VF_TRUST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_TRUST; +pub const IFLA_VF_IB_NODE_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_NODE_GUID; +pub const IFLA_VF_IB_PORT_GUID: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_IB_PORT_GUID; +pub const IFLA_VF_VLAN_LIST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_VLAN_LIST; +pub const IFLA_VF_BROADCAST: _bindgen_ty_27 = _bindgen_ty_27::IFLA_VF_BROADCAST; +pub const __IFLA_VF_MAX: _bindgen_ty_27 = _bindgen_ty_27::__IFLA_VF_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_27 { +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(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, +} +pub const IFLA_VF_VLAN_INFO_UNSPEC: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO_UNSPEC; +pub const IFLA_VF_VLAN_INFO: _bindgen_ty_28 = _bindgen_ty_28::IFLA_VF_VLAN_INFO; +pub const __IFLA_VF_VLAN_INFO_MAX: _bindgen_ty_28 = _bindgen_ty_28::__IFLA_VF_VLAN_INFO_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_28 { +IFLA_VF_VLAN_INFO_UNSPEC = 0, +IFLA_VF_VLAN_INFO = 1, +__IFLA_VF_VLAN_INFO_MAX = 2, +} +#[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, +} +pub const IFLA_VF_LINK_STATE_AUTO: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_AUTO; +pub const IFLA_VF_LINK_STATE_ENABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_ENABLE; +pub const IFLA_VF_LINK_STATE_DISABLE: _bindgen_ty_29 = _bindgen_ty_29::IFLA_VF_LINK_STATE_DISABLE; +pub const __IFLA_VF_LINK_STATE_MAX: _bindgen_ty_29 = _bindgen_ty_29::__IFLA_VF_LINK_STATE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_29 { +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(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, +} +pub const IFLA_VF_STATS_RX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_PACKETS; +pub const IFLA_VF_STATS_TX_PACKETS: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_PACKETS; +pub const IFLA_VF_STATS_RX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_BYTES; +pub const IFLA_VF_STATS_TX_BYTES: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_BYTES; +pub const IFLA_VF_STATS_BROADCAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_BROADCAST; +pub const IFLA_VF_STATS_MULTICAST: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_MULTICAST; +pub const IFLA_VF_STATS_PAD: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_PAD; +pub const IFLA_VF_STATS_RX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_RX_DROPPED; +pub const IFLA_VF_STATS_TX_DROPPED: _bindgen_ty_30 = _bindgen_ty_30::IFLA_VF_STATS_TX_DROPPED; +pub const __IFLA_VF_STATS_MAX: _bindgen_ty_30 = _bindgen_ty_30::__IFLA_VF_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_30 { +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(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_vf_trust { +pub vf: __u32, +pub setting: __u32, +} +pub const IFLA_VF_PORT_UNSPEC: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT_UNSPEC; +pub const IFLA_VF_PORT: _bindgen_ty_31 = _bindgen_ty_31::IFLA_VF_PORT; +pub const __IFLA_VF_PORT_MAX: _bindgen_ty_31 = _bindgen_ty_31::__IFLA_VF_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_31 { +IFLA_VF_PORT_UNSPEC = 0, +IFLA_VF_PORT = 1, +__IFLA_VF_PORT_MAX = 2, +} +pub const IFLA_PORT_UNSPEC: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_UNSPEC; +pub const IFLA_PORT_VF: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VF; +pub const IFLA_PORT_PROFILE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_PROFILE; +pub const IFLA_PORT_VSI_TYPE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_VSI_TYPE; +pub const IFLA_PORT_INSTANCE_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_INSTANCE_UUID; +pub const IFLA_PORT_HOST_UUID: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_HOST_UUID; +pub const IFLA_PORT_REQUEST: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_REQUEST; +pub const IFLA_PORT_RESPONSE: _bindgen_ty_32 = _bindgen_ty_32::IFLA_PORT_RESPONSE; +pub const __IFLA_PORT_MAX: _bindgen_ty_32 = _bindgen_ty_32::__IFLA_PORT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_32 { +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, +} +pub const PORT_REQUEST_PREASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE; +pub const PORT_REQUEST_PREASSOCIATE_RR: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_PREASSOCIATE_RR; +pub const PORT_REQUEST_ASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_ASSOCIATE; +pub const PORT_REQUEST_DISASSOCIATE: _bindgen_ty_33 = _bindgen_ty_33::PORT_REQUEST_DISASSOCIATE; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_33 { +PORT_REQUEST_PREASSOCIATE = 0, +PORT_REQUEST_PREASSOCIATE_RR = 1, +PORT_REQUEST_ASSOCIATE = 2, +PORT_REQUEST_DISASSOCIATE = 3, +} +pub const PORT_VDP_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_SUCCESS; +pub const PORT_VDP_RESPONSE_INVALID_FORMAT: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INVALID_FORMAT; +pub const PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_VDP_RESPONSE_UNUSED_VTID: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_UNUSED_VTID; +pub const PORT_VDP_RESPONSE_VTID_VIOLATION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VIOLATION; +pub const PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION; +pub const PORT_VDP_RESPONSE_OUT_OF_SYNC: _bindgen_ty_34 = _bindgen_ty_34::PORT_VDP_RESPONSE_OUT_OF_SYNC; +pub const PORT_PROFILE_RESPONSE_SUCCESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_SUCCESS; +pub const PORT_PROFILE_RESPONSE_INPROGRESS: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INPROGRESS; +pub const PORT_PROFILE_RESPONSE_INVALID: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INVALID; +pub const PORT_PROFILE_RESPONSE_BADSTATE: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_BADSTATE; +pub const PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES; +pub const PORT_PROFILE_RESPONSE_ERROR: _bindgen_ty_34 = _bindgen_ty_34::PORT_PROFILE_RESPONSE_ERROR; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_34 { +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(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], +} +pub const IFLA_IPOIB_UNSPEC: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UNSPEC; +pub const IFLA_IPOIB_PKEY: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_PKEY; +pub const IFLA_IPOIB_MODE: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_MODE; +pub const IFLA_IPOIB_UMCAST: _bindgen_ty_35 = _bindgen_ty_35::IFLA_IPOIB_UMCAST; +pub const __IFLA_IPOIB_MAX: _bindgen_ty_35 = _bindgen_ty_35::__IFLA_IPOIB_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_35 { +IFLA_IPOIB_UNSPEC = 0, +IFLA_IPOIB_PKEY = 1, +IFLA_IPOIB_MODE = 2, +IFLA_IPOIB_UMCAST = 3, +__IFLA_IPOIB_MAX = 4, +} +pub const IPOIB_MODE_DATAGRAM: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_DATAGRAM; +pub const IPOIB_MODE_CONNECTED: _bindgen_ty_36 = _bindgen_ty_36::IPOIB_MODE_CONNECTED; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_36 { +IPOIB_MODE_DATAGRAM = 0, +IPOIB_MODE_CONNECTED = 1, +} +pub const HSR_PROTOCOL_HSR: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_HSR; +pub const HSR_PROTOCOL_PRP: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_PRP; +pub const HSR_PROTOCOL_MAX: _bindgen_ty_37 = _bindgen_ty_37::HSR_PROTOCOL_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_37 { +HSR_PROTOCOL_HSR = 0, +HSR_PROTOCOL_PRP = 1, +HSR_PROTOCOL_MAX = 2, +} +pub const IFLA_HSR_UNSPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_UNSPEC; +pub const IFLA_HSR_SLAVE1: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE1; +pub const IFLA_HSR_SLAVE2: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SLAVE2; +pub const IFLA_HSR_MULTICAST_SPEC: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_MULTICAST_SPEC; +pub const IFLA_HSR_SUPERVISION_ADDR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SUPERVISION_ADDR; +pub const IFLA_HSR_SEQ_NR: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_SEQ_NR; +pub const IFLA_HSR_VERSION: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_VERSION; +pub const IFLA_HSR_PROTOCOL: _bindgen_ty_38 = _bindgen_ty_38::IFLA_HSR_PROTOCOL; +pub const __IFLA_HSR_MAX: _bindgen_ty_38 = _bindgen_ty_38::__IFLA_HSR_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_38 { +IFLA_HSR_UNSPEC = 0, +IFLA_HSR_SLAVE1 = 1, +IFLA_HSR_SLAVE2 = 2, +IFLA_HSR_MULTICAST_SPEC = 3, +IFLA_HSR_SUPERVISION_ADDR = 4, +IFLA_HSR_SEQ_NR = 5, +IFLA_HSR_VERSION = 6, +IFLA_HSR_PROTOCOL = 7, +__IFLA_HSR_MAX = 8, +} +#[repr(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, +} +pub const IFLA_STATS_UNSPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_UNSPEC; +pub const IFLA_STATS_LINK_64: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_64; +pub const IFLA_STATS_LINK_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS; +pub const IFLA_STATS_LINK_XSTATS_SLAVE: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_XSTATS_SLAVE; +pub const IFLA_STATS_LINK_OFFLOAD_XSTATS: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_LINK_OFFLOAD_XSTATS; +pub const IFLA_STATS_AF_SPEC: _bindgen_ty_39 = _bindgen_ty_39::IFLA_STATS_AF_SPEC; +pub const __IFLA_STATS_MAX: _bindgen_ty_39 = _bindgen_ty_39::__IFLA_STATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_39 { +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, +} +pub const LINK_XSTATS_TYPE_UNSPEC: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_UNSPEC; +pub const LINK_XSTATS_TYPE_BRIDGE: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BRIDGE; +pub const LINK_XSTATS_TYPE_BOND: _bindgen_ty_40 = _bindgen_ty_40::LINK_XSTATS_TYPE_BOND; +pub const __LINK_XSTATS_TYPE_MAX: _bindgen_ty_40 = _bindgen_ty_40::__LINK_XSTATS_TYPE_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_40 { +LINK_XSTATS_TYPE_UNSPEC = 0, +LINK_XSTATS_TYPE_BRIDGE = 1, +LINK_XSTATS_TYPE_BOND = 2, +__LINK_XSTATS_TYPE_MAX = 3, +} +pub const IFLA_OFFLOAD_XSTATS_UNSPEC: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_UNSPEC; +pub const IFLA_OFFLOAD_XSTATS_CPU_HIT: _bindgen_ty_41 = _bindgen_ty_41::IFLA_OFFLOAD_XSTATS_CPU_HIT; +pub const __IFLA_OFFLOAD_XSTATS_MAX: _bindgen_ty_41 = _bindgen_ty_41::__IFLA_OFFLOAD_XSTATS_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_41 { +IFLA_OFFLOAD_XSTATS_UNSPEC = 0, +IFLA_OFFLOAD_XSTATS_CPU_HIT = 1, +__IFLA_OFFLOAD_XSTATS_MAX = 2, +} +pub const XDP_ATTACHED_NONE: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_NONE; +pub const XDP_ATTACHED_DRV: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_DRV; +pub const XDP_ATTACHED_SKB: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_SKB; +pub const XDP_ATTACHED_HW: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_HW; +pub const XDP_ATTACHED_MULTI: _bindgen_ty_42 = _bindgen_ty_42::XDP_ATTACHED_MULTI; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_42 { +XDP_ATTACHED_NONE = 0, +XDP_ATTACHED_DRV = 1, +XDP_ATTACHED_SKB = 2, +XDP_ATTACHED_HW = 3, +XDP_ATTACHED_MULTI = 4, +} +pub const IFLA_XDP_UNSPEC: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_UNSPEC; +pub const IFLA_XDP_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FD; +pub const IFLA_XDP_ATTACHED: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_ATTACHED; +pub const IFLA_XDP_FLAGS: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_FLAGS; +pub const IFLA_XDP_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_PROG_ID; +pub const IFLA_XDP_DRV_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_DRV_PROG_ID; +pub const IFLA_XDP_SKB_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_SKB_PROG_ID; +pub const IFLA_XDP_HW_PROG_ID: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_HW_PROG_ID; +pub const IFLA_XDP_EXPECTED_FD: _bindgen_ty_43 = _bindgen_ty_43::IFLA_XDP_EXPECTED_FD; +pub const __IFLA_XDP_MAX: _bindgen_ty_43 = _bindgen_ty_43::__IFLA_XDP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_43 { +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, +} +pub const IFLA_EVENT_NONE: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NONE; +pub const IFLA_EVENT_REBOOT: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_REBOOT; +pub const IFLA_EVENT_FEATURES: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_FEATURES; +pub const IFLA_EVENT_BONDING_FAILOVER: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_FAILOVER; +pub const IFLA_EVENT_NOTIFY_PEERS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_NOTIFY_PEERS; +pub const IFLA_EVENT_IGMP_RESEND: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_IGMP_RESEND; +pub const IFLA_EVENT_BONDING_OPTIONS: _bindgen_ty_44 = _bindgen_ty_44::IFLA_EVENT_BONDING_OPTIONS; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_44 { +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, +} +pub const IFLA_TUN_UNSPEC: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_UNSPEC; +pub const IFLA_TUN_OWNER: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_OWNER; +pub const IFLA_TUN_GROUP: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_GROUP; +pub const IFLA_TUN_TYPE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_TYPE; +pub const IFLA_TUN_PI: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PI; +pub const IFLA_TUN_VNET_HDR: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_VNET_HDR; +pub const IFLA_TUN_PERSIST: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_PERSIST; +pub const IFLA_TUN_MULTI_QUEUE: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_MULTI_QUEUE; +pub const IFLA_TUN_NUM_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_QUEUES; +pub const IFLA_TUN_NUM_DISABLED_QUEUES: _bindgen_ty_45 = _bindgen_ty_45::IFLA_TUN_NUM_DISABLED_QUEUES; +pub const __IFLA_TUN_MAX: _bindgen_ty_45 = _bindgen_ty_45::__IFLA_TUN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_45 { +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, +} +pub const IFLA_RMNET_UNSPEC: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_UNSPEC; +pub const IFLA_RMNET_MUX_ID: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_MUX_ID; +pub const IFLA_RMNET_FLAGS: _bindgen_ty_46 = _bindgen_ty_46::IFLA_RMNET_FLAGS; +pub const __IFLA_RMNET_MAX: _bindgen_ty_46 = _bindgen_ty_46::__IFLA_RMNET_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_46 { +IFLA_RMNET_UNSPEC = 0, +IFLA_RMNET_MUX_ID = 1, +IFLA_RMNET_FLAGS = 2, +__IFLA_RMNET_MAX = 3, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ifla_rmnet_flags { +pub flags: __u32, +pub mask: __u32, +} +pub const IFLA_MCTP_UNSPEC: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_UNSPEC; +pub const IFLA_MCTP_NET: _bindgen_ty_47 = _bindgen_ty_47::IFLA_MCTP_NET; +pub const __IFLA_MCTP_MAX: _bindgen_ty_47 = _bindgen_ty_47::__IFLA_MCTP_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_47 { +IFLA_MCTP_UNSPEC = 0, +IFLA_MCTP_NET = 1, +__IFLA_MCTP_MAX = 2, +} +#[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, +} +pub const IFA_UNSPEC: _bindgen_ty_48 = _bindgen_ty_48::IFA_UNSPEC; +pub const IFA_ADDRESS: _bindgen_ty_48 = _bindgen_ty_48::IFA_ADDRESS; +pub const IFA_LOCAL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LOCAL; +pub const IFA_LABEL: _bindgen_ty_48 = _bindgen_ty_48::IFA_LABEL; +pub const IFA_BROADCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_BROADCAST; +pub const IFA_ANYCAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_ANYCAST; +pub const IFA_CACHEINFO: _bindgen_ty_48 = _bindgen_ty_48::IFA_CACHEINFO; +pub const IFA_MULTICAST: _bindgen_ty_48 = _bindgen_ty_48::IFA_MULTICAST; +pub const IFA_FLAGS: _bindgen_ty_48 = _bindgen_ty_48::IFA_FLAGS; +pub const IFA_RT_PRIORITY: _bindgen_ty_48 = _bindgen_ty_48::IFA_RT_PRIORITY; +pub const IFA_TARGET_NETNSID: _bindgen_ty_48 = _bindgen_ty_48::IFA_TARGET_NETNSID; +pub const __IFA_MAX: _bindgen_ty_48 = _bindgen_ty_48::__IFA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_48 { +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_MAX = 11, +} +#[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, +} +pub const NDA_UNSPEC: _bindgen_ty_49 = _bindgen_ty_49::NDA_UNSPEC; +pub const NDA_DST: _bindgen_ty_49 = _bindgen_ty_49::NDA_DST; +pub const NDA_LLADDR: _bindgen_ty_49 = _bindgen_ty_49::NDA_LLADDR; +pub const NDA_CACHEINFO: _bindgen_ty_49 = _bindgen_ty_49::NDA_CACHEINFO; +pub const NDA_PROBES: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROBES; +pub const NDA_VLAN: _bindgen_ty_49 = _bindgen_ty_49::NDA_VLAN; +pub const NDA_PORT: _bindgen_ty_49 = _bindgen_ty_49::NDA_PORT; +pub const NDA_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_VNI; +pub const NDA_IFINDEX: _bindgen_ty_49 = _bindgen_ty_49::NDA_IFINDEX; +pub const NDA_MASTER: _bindgen_ty_49 = _bindgen_ty_49::NDA_MASTER; +pub const NDA_LINK_NETNSID: _bindgen_ty_49 = _bindgen_ty_49::NDA_LINK_NETNSID; +pub const NDA_SRC_VNI: _bindgen_ty_49 = _bindgen_ty_49::NDA_SRC_VNI; +pub const NDA_PROTOCOL: _bindgen_ty_49 = _bindgen_ty_49::NDA_PROTOCOL; +pub const NDA_NH_ID: _bindgen_ty_49 = _bindgen_ty_49::NDA_NH_ID; +pub const NDA_FDB_EXT_ATTRS: _bindgen_ty_49 = _bindgen_ty_49::NDA_FDB_EXT_ATTRS; +pub const NDA_FLAGS_EXT: _bindgen_ty_49 = _bindgen_ty_49::NDA_FLAGS_EXT; +pub const __NDA_MAX: _bindgen_ty_49 = _bindgen_ty_49::__NDA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_49 { +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_MAX = 16, +} +#[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, +} +pub const NDTPA_UNSPEC: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UNSPEC; +pub const NDTPA_IFINDEX: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_IFINDEX; +pub const NDTPA_REFCNT: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REFCNT; +pub const NDTPA_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_REACHABLE_TIME; +pub const NDTPA_BASE_REACHABLE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_BASE_REACHABLE_TIME; +pub const NDTPA_RETRANS_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_RETRANS_TIME; +pub const NDTPA_GC_STALETIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_GC_STALETIME; +pub const NDTPA_DELAY_PROBE_TIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_DELAY_PROBE_TIME; +pub const NDTPA_QUEUE_LEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LEN; +pub const NDTPA_APP_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_APP_PROBES; +pub const NDTPA_UCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_UCAST_PROBES; +pub const NDTPA_MCAST_PROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_PROBES; +pub const NDTPA_ANYCAST_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_ANYCAST_DELAY; +pub const NDTPA_PROXY_DELAY: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_DELAY; +pub const NDTPA_PROXY_QLEN: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PROXY_QLEN; +pub const NDTPA_LOCKTIME: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_LOCKTIME; +pub const NDTPA_QUEUE_LENBYTES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_QUEUE_LENBYTES; +pub const NDTPA_MCAST_REPROBES: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_MCAST_REPROBES; +pub const NDTPA_PAD: _bindgen_ty_50 = _bindgen_ty_50::NDTPA_PAD; +pub const __NDTPA_MAX: _bindgen_ty_50 = _bindgen_ty_50::__NDTPA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_50 { +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_MAX = 19, +} +#[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, +} +pub const NDTA_UNSPEC: _bindgen_ty_51 = _bindgen_ty_51::NDTA_UNSPEC; +pub const NDTA_NAME: _bindgen_ty_51 = _bindgen_ty_51::NDTA_NAME; +pub const NDTA_THRESH1: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH1; +pub const NDTA_THRESH2: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH2; +pub const NDTA_THRESH3: _bindgen_ty_51 = _bindgen_ty_51::NDTA_THRESH3; +pub const NDTA_CONFIG: _bindgen_ty_51 = _bindgen_ty_51::NDTA_CONFIG; +pub const NDTA_PARMS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PARMS; +pub const NDTA_STATS: _bindgen_ty_51 = _bindgen_ty_51::NDTA_STATS; +pub const NDTA_GC_INTERVAL: _bindgen_ty_51 = _bindgen_ty_51::NDTA_GC_INTERVAL; +pub const NDTA_PAD: _bindgen_ty_51 = _bindgen_ty_51::NDTA_PAD; +pub const __NDTA_MAX: _bindgen_ty_51 = _bindgen_ty_51::__NDTA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_51 { +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, +} +pub const FDB_NOTIFY_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_BIT; +pub const FDB_NOTIFY_INACTIVE_BIT: _bindgen_ty_52 = _bindgen_ty_52::FDB_NOTIFY_INACTIVE_BIT; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_52 { +FDB_NOTIFY_BIT = 1, +FDB_NOTIFY_INACTIVE_BIT = 2, +} +pub const NFEA_UNSPEC: _bindgen_ty_53 = _bindgen_ty_53::NFEA_UNSPEC; +pub const NFEA_ACTIVITY_NOTIFY: _bindgen_ty_53 = _bindgen_ty_53::NFEA_ACTIVITY_NOTIFY; +pub const NFEA_DONT_REFRESH: _bindgen_ty_53 = _bindgen_ty_53::NFEA_DONT_REFRESH; +pub const __NFEA_MAX: _bindgen_ty_53 = _bindgen_ty_53::__NFEA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_53 { +NFEA_UNSPEC = 0, +NFEA_ACTIVITY_NOTIFY = 1, +NFEA_DONT_REFRESH = 2, +__NFEA_MAX = 3, +} +pub const RTM_BASE: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_NEWLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_BASE; +pub const RTM_DELLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINK; +pub const RTM_GETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINK; +pub const RTM_SETLINK: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETLINK; +pub const RTM_NEWADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDR; +pub const RTM_DELADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDR; +pub const RTM_GETADDR: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDR; +pub const RTM_NEWROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWROUTE; +pub const RTM_DELROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELROUTE; +pub const RTM_GETROUTE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETROUTE; +pub const RTM_NEWNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGH; +pub const RTM_DELNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEIGH; +pub const RTM_GETNEIGH: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGH; +pub const RTM_NEWRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWRULE; +pub const RTM_DELRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELRULE; +pub const RTM_GETRULE: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETRULE; +pub const RTM_NEWQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWQDISC; +pub const RTM_DELQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELQDISC; +pub const RTM_GETQDISC: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETQDISC; +pub const RTM_NEWTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTCLASS; +pub const RTM_DELTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTCLASS; +pub const RTM_GETTCLASS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTCLASS; +pub const RTM_NEWTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWTFILTER; +pub const RTM_DELTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELTFILTER; +pub const RTM_GETTFILTER: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETTFILTER; +pub const RTM_NEWACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWACTION; +pub const RTM_DELACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELACTION; +pub const RTM_GETACTION: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETACTION; +pub const RTM_NEWPREFIX: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWPREFIX; +pub const RTM_GETMULTICAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMULTICAST; +pub const RTM_GETANYCAST: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETANYCAST; +pub const RTM_NEWNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEIGHTBL; +pub const RTM_GETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEIGHTBL; +pub const RTM_SETNEIGHTBL: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETNEIGHTBL; +pub const RTM_NEWNDUSEROPT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNDUSEROPT; +pub const RTM_NEWADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWADDRLABEL; +pub const RTM_DELADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELADDRLABEL; +pub const RTM_GETADDRLABEL: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETADDRLABEL; +pub const RTM_GETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETDCB; +pub const RTM_SETDCB: _bindgen_ty_54 = _bindgen_ty_54::RTM_SETDCB; +pub const RTM_NEWNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNETCONF; +pub const RTM_DELNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNETCONF; +pub const RTM_GETNETCONF: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNETCONF; +pub const RTM_NEWMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWMDB; +pub const RTM_DELMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELMDB; +pub const RTM_GETMDB: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETMDB; +pub const RTM_NEWNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNSID; +pub const RTM_DELNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNSID; +pub const RTM_GETNSID: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNSID; +pub const RTM_NEWSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWSTATS; +pub const RTM_GETSTATS: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETSTATS; +pub const RTM_NEWCACHEREPORT: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCACHEREPORT; +pub const RTM_NEWCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWCHAIN; +pub const RTM_DELCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELCHAIN; +pub const RTM_GETCHAIN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETCHAIN; +pub const RTM_NEWNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOP; +pub const RTM_DELNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOP; +pub const RTM_GETNEXTHOP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOP; +pub const RTM_NEWLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWLINKPROP; +pub const RTM_DELLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELLINKPROP; +pub const RTM_GETLINKPROP: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETLINKPROP; +pub const RTM_NEWVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWVLAN; +pub const RTM_DELVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELVLAN; +pub const RTM_GETVLAN: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETVLAN; +pub const RTM_NEWNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_NEWNEXTHOPBUCKET; +pub const RTM_DELNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_DELNEXTHOPBUCKET; +pub const RTM_GETNEXTHOPBUCKET: _bindgen_ty_54 = _bindgen_ty_54::RTM_GETNEXTHOPBUCKET; +pub const __RTM_MAX: _bindgen_ty_54 = _bindgen_ty_54::__RTM_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_54 { +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_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_MAX = 119, +} +#[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, +} +pub const RTN_UNSPEC: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNSPEC; +pub const RTN_UNICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNICAST; +pub const RTN_LOCAL: _bindgen_ty_55 = _bindgen_ty_55::RTN_LOCAL; +pub const RTN_BROADCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_BROADCAST; +pub const RTN_ANYCAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_ANYCAST; +pub const RTN_MULTICAST: _bindgen_ty_55 = _bindgen_ty_55::RTN_MULTICAST; +pub const RTN_BLACKHOLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_BLACKHOLE; +pub const RTN_UNREACHABLE: _bindgen_ty_55 = _bindgen_ty_55::RTN_UNREACHABLE; +pub const RTN_PROHIBIT: _bindgen_ty_55 = _bindgen_ty_55::RTN_PROHIBIT; +pub const RTN_THROW: _bindgen_ty_55 = _bindgen_ty_55::RTN_THROW; +pub const RTN_NAT: _bindgen_ty_55 = _bindgen_ty_55::RTN_NAT; +pub const RTN_XRESOLVE: _bindgen_ty_55 = _bindgen_ty_55::RTN_XRESOLVE; +pub const __RTN_MAX: _bindgen_ty_55 = _bindgen_ty_55::__RTN_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_55 { +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(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, +} +pub const RTAX_UNSPEC: _bindgen_ty_56 = _bindgen_ty_56::RTAX_UNSPEC; +pub const RTAX_LOCK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_LOCK; +pub const RTAX_MTU: _bindgen_ty_56 = _bindgen_ty_56::RTAX_MTU; +pub const RTAX_WINDOW: _bindgen_ty_56 = _bindgen_ty_56::RTAX_WINDOW; +pub const RTAX_RTT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTT; +pub const RTAX_RTTVAR: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTTVAR; +pub const RTAX_SSTHRESH: _bindgen_ty_56 = _bindgen_ty_56::RTAX_SSTHRESH; +pub const RTAX_CWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CWND; +pub const RTAX_ADVMSS: _bindgen_ty_56 = _bindgen_ty_56::RTAX_ADVMSS; +pub const RTAX_REORDERING: _bindgen_ty_56 = _bindgen_ty_56::RTAX_REORDERING; +pub const RTAX_HOPLIMIT: _bindgen_ty_56 = _bindgen_ty_56::RTAX_HOPLIMIT; +pub const RTAX_INITCWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITCWND; +pub const RTAX_FEATURES: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FEATURES; +pub const RTAX_RTO_MIN: _bindgen_ty_56 = _bindgen_ty_56::RTAX_RTO_MIN; +pub const RTAX_INITRWND: _bindgen_ty_56 = _bindgen_ty_56::RTAX_INITRWND; +pub const RTAX_QUICKACK: _bindgen_ty_56 = _bindgen_ty_56::RTAX_QUICKACK; +pub const RTAX_CC_ALGO: _bindgen_ty_56 = _bindgen_ty_56::RTAX_CC_ALGO; +pub const RTAX_FASTOPEN_NO_COOKIE: _bindgen_ty_56 = _bindgen_ty_56::RTAX_FASTOPEN_NO_COOKIE; +pub const __RTAX_MAX: _bindgen_ty_56 = _bindgen_ty_56::__RTAX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_56 { +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(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(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, +} +#[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, +} +pub const PREFIX_UNSPEC: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_UNSPEC; +pub const PREFIX_ADDRESS: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_ADDRESS; +pub const PREFIX_CACHEINFO: _bindgen_ty_57 = _bindgen_ty_57::PREFIX_CACHEINFO; +pub const __PREFIX_MAX: _bindgen_ty_57 = _bindgen_ty_57::__PREFIX_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_57 { +PREFIX_UNSPEC = 0, +PREFIX_ADDRESS = 1, +PREFIX_CACHEINFO = 2, +__PREFIX_MAX = 3, +} +#[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, +} +pub const TCA_UNSPEC: _bindgen_ty_58 = _bindgen_ty_58::TCA_UNSPEC; +pub const TCA_KIND: _bindgen_ty_58 = _bindgen_ty_58::TCA_KIND; +pub const TCA_OPTIONS: _bindgen_ty_58 = _bindgen_ty_58::TCA_OPTIONS; +pub const TCA_STATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS; +pub const TCA_XSTATS: _bindgen_ty_58 = _bindgen_ty_58::TCA_XSTATS; +pub const TCA_RATE: _bindgen_ty_58 = _bindgen_ty_58::TCA_RATE; +pub const TCA_FCNT: _bindgen_ty_58 = _bindgen_ty_58::TCA_FCNT; +pub const TCA_STATS2: _bindgen_ty_58 = _bindgen_ty_58::TCA_STATS2; +pub const TCA_STAB: _bindgen_ty_58 = _bindgen_ty_58::TCA_STAB; +pub const TCA_PAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_PAD; +pub const TCA_DUMP_INVISIBLE: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_INVISIBLE; +pub const TCA_CHAIN: _bindgen_ty_58 = _bindgen_ty_58::TCA_CHAIN; +pub const TCA_HW_OFFLOAD: _bindgen_ty_58 = _bindgen_ty_58::TCA_HW_OFFLOAD; +pub const TCA_INGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_INGRESS_BLOCK; +pub const TCA_EGRESS_BLOCK: _bindgen_ty_58 = _bindgen_ty_58::TCA_EGRESS_BLOCK; +pub const TCA_DUMP_FLAGS: _bindgen_ty_58 = _bindgen_ty_58::TCA_DUMP_FLAGS; +pub const __TCA_MAX: _bindgen_ty_58 = _bindgen_ty_58::__TCA_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_58 { +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_MAX = 16, +} +#[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, +} +pub const NDUSEROPT_UNSPEC: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_UNSPEC; +pub const NDUSEROPT_SRCADDR: _bindgen_ty_59 = _bindgen_ty_59::NDUSEROPT_SRCADDR; +pub const __NDUSEROPT_MAX: _bindgen_ty_59 = _bindgen_ty_59::__NDUSEROPT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_59 { +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_MAX = 35, +} +#[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 TCA_ROOT_UNSPEC: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_UNSPEC; +pub const TCA_ROOT_TAB: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TAB; +pub const TCA_ROOT_FLAGS: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_FLAGS; +pub const TCA_ROOT_COUNT: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_COUNT; +pub const TCA_ROOT_TIME_DELTA: _bindgen_ty_60 = _bindgen_ty_60::TCA_ROOT_TIME_DELTA; +pub const __TCA_ROOT_MAX: _bindgen_ty_60 = _bindgen_ty_60::__TCA_ROOT_MAX; +#[repr(u32)] +#[non_exhaustive] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)] +pub enum _bindgen_ty_60 { +TCA_ROOT_UNSPEC = 0, +TCA_ROOT_TAB = 1, +TCA_ROOT_FLAGS = 2, +TCA_ROOT_COUNT = 3, +TCA_ROOT_TIME_DELTA = 4, +__TCA_ROOT_MAX = 5, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"} \ No newline at end of file +{"files":{},"package":"52ffbca2f655e33c08be35d87278e5b18b89550a37dbd598c20db92f6a471123"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -3,31 +3,54 @@ # 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 +# to registry (e.g., crates.io) dependencies. # -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) +# 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" name = "miow" -version = "0.3.7" +version = "0.5.0" authors = ["Alex Crichton "] -description = "A zero overhead I/O library for Windows, focusing on IOCP and Async I/O\nabstractions.\n" +description = """ +A zero overhead I/O library for Windows, focusing on IOCP and async I/O +abstractions. +""" homepage = "https://github.com/yoshuawuyts/miow" -documentation = "https://docs.rs/miow/0.3/x86_64-pc-windows-msvc/miow/" +documentation = "https://docs.rs/miow" readme = "README.md" -keywords = ["iocp", "windows", "io", "overlapped"] -license = "MIT/Apache-2.0" +keywords = [ + "iocp", + "windows", + "io", + "overlapped", +] +license = "MIT OR Apache-2.0" repository = "https://github.com/yoshuawuyts/miow" + [package.metadata.docs.rs] default-target = "x86_64-pc-windows-msvc" -targets = ["aarch64-pc-windows-msvc", "i686-pc-windows-msvc", "x86_64-pc-windows-msvc"] -[dependencies.winapi] -version = "0.3.3" -features = ["std", "fileapi", "handleapi", "ioapiset", "minwindef", "namedpipeapi", "ntdef", "synchapi", "winerror", "winsock2", "ws2def", "ws2ipdef"] +targets = [ + "aarch64-pc-windows-msvc", + "i686-pc-windows-msvc", + "x86_64-pc-windows-msvc", +] + +[dependencies.windows-sys] +version = "0.42.0" +features = [ + "Win32_Foundation", + "Win32_Networking_WinSock", + "Win32_Security", + "Win32_Storage_FileSystem", + "Win32_System_IO", + "Win32_System_Pipes", + "Win32_System_Threading", + "Win32_System_WindowsProgramming", +] + [dev-dependencies.rand] version = "0.8.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/CHANGELOG.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/CHANGELOG.md 2023-02-17 23:07:30.000000000 +0000 @@ -1,3 +1,14 @@ +## [v0.5.0] - 2022-11-10 +### Changed +- Upgrade `windows-sys` from 0.28 to 0.42. + +## [v0.4.0] - 2021-11-29 +### Changed +- Replaced `winapi` with `windows-sys`. +- `CompletionStatus` now guarantees `#[repr(transparent)]`. + +### Internal +- Added CI integration. ## [v0.3.7] - 2021-03-22 ### Changed diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/README.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -2,7 +2,7 @@ [![Build status](https://ci.appveyor.com/api/projects/status/tc5lsxokjk86949l?svg=true)](https://ci.appveyor.com/project/alexcrichton/miow) -[Documentation](https://docs.rs/miow/0.3/x86_64-pc-windows-msvc/miow/) +[Documentation](https://docs.rs/miow) A zero overhead Windows I/O library focusing on IOCP and other async I/O features. @@ -10,7 +10,7 @@ ```toml # Cargo.toml [dependencies] -miow = "0.3.6" +miow = "0.5" ``` # License @@ -18,9 +18,9 @@ This project is licensed under either of * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or - http://www.apache.org/licenses/LICENSE-2.0) + https://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or - http://opensource.org/licenses/MIT) + https://opensource.org/licenses/MIT) at your option. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/handle.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/handle.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/handle.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/handle.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,14 +1,11 @@ +use crate::{BOOL, FALSE, TRUE}; use std::cmp; use std::io; use std::ptr; -use winapi::shared::minwindef::*; -use winapi::shared::ntdef::{BOOLEAN, FALSE, HANDLE, TRUE}; -use winapi::shared::winerror::*; -use winapi::um::fileapi::*; -use winapi::um::handleapi::*; -use winapi::um::ioapiset::*; -use winapi::um::minwinbase::*; +use windows_sys::Win32::Foundation::{CloseHandle, ERROR_IO_INCOMPLETE, ERROR_IO_PENDING, HANDLE}; +use windows_sys::Win32::Storage::FileSystem::{ReadFile, WriteFile}; +use windows_sys::Win32::System::IO::{GetOverlappedResult, OVERLAPPED}; #[derive(Debug)] pub struct Handle(HANDLE); @@ -35,7 +32,7 @@ pub fn write(&self, buf: &[u8]) -> io::Result { let mut bytes = 0; - let len = cmp::min(buf.len(), ::max_value() as usize) as DWORD; + let len = cmp::min(buf.len(), ::max_value() as usize) as u32; crate::cvt(unsafe { WriteFile( self.0, @@ -50,7 +47,7 @@ pub fn read(&self, buf: &mut [u8]) -> io::Result { let mut bytes = 0; - let len = cmp::min(buf.len(), ::max_value() as usize) as DWORD; + let len = cmp::min(buf.len(), ::max_value() as usize) as u32; crate::cvt(unsafe { ReadFile( self.0, @@ -87,9 +84,9 @@ &self, buf: &mut [u8], overlapped: *mut OVERLAPPED, - wait: BOOLEAN, + wait: BOOL, ) -> io::Result> { - let len = cmp::min(buf.len(), ::max_value() as usize) as DWORD; + let len = cmp::min(buf.len(), ::max_value() as usize) as u32; let res = crate::cvt({ ReadFile( self.0, @@ -106,7 +103,7 @@ } let mut bytes = 0; - let res = crate::cvt({ GetOverlappedResult(self.0, overlapped, &mut bytes, wait as BOOL) }); + let res = crate::cvt(GetOverlappedResult(self.0, overlapped, &mut bytes, wait)); match res { Ok(_) => Ok(Some(bytes as usize)), Err(ref e) if e.raw_os_error() == Some(ERROR_IO_INCOMPLETE as i32) && wait == FALSE => { @@ -140,9 +137,9 @@ &self, buf: &[u8], overlapped: *mut OVERLAPPED, - wait: BOOLEAN, + wait: BOOL, ) -> io::Result> { - let len = cmp::min(buf.len(), ::max_value() as usize) as DWORD; + let len = cmp::min(buf.len(), ::max_value() as usize) as u32; let res = crate::cvt({ WriteFile( self.0, @@ -159,7 +156,7 @@ } let mut bytes = 0; - let res = crate::cvt({ GetOverlappedResult(self.0, overlapped, &mut bytes, wait as BOOL) }); + let res = crate::cvt(GetOverlappedResult(self.0, overlapped, &mut bytes, wait)); match res { Ok(_) => Ok(Some(bytes as usize)), Err(ref e) if e.raw_os_error() == Some(ERROR_IO_INCOMPLETE as i32) && wait == FALSE => { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/iocp.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/iocp.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/iocp.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/iocp.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,19 +1,20 @@ //! Bindings to IOCP, I/O Completion Ports +use crate::FALSE; use std::cmp; use std::fmt; use std::io; use std::mem; -use std::os::windows::io::*; +use std::os::windows::io::{AsRawHandle, AsRawSocket, FromRawHandle, IntoRawHandle, RawHandle}; use std::time::Duration; use crate::handle::Handle; use crate::Overlapped; -use winapi::shared::basetsd::*; -use winapi::shared::ntdef::*; -use winapi::um::handleapi::*; -use winapi::um::ioapiset::*; -use winapi::um::minwinbase::*; +use windows_sys::Win32::Foundation::{HANDLE, INVALID_HANDLE_VALUE}; +use windows_sys::Win32::System::IO::{ + CreateIoCompletionPort, GetQueuedCompletionStatus, GetQueuedCompletionStatusEx, + PostQueuedCompletionStatus, OVERLAPPED, OVERLAPPED_ENTRY, +}; /// A handle to an Windows I/O Completion Port. #[derive(Debug)] @@ -27,6 +28,7 @@ /// provided to a completion port, or they are read out of a completion port. /// The fields of each status are read through its accessor methods. #[derive(Clone, Copy)] +#[repr(transparent)] pub struct CompletionStatus(OVERLAPPED_ENTRY); impl fmt::Debug for CompletionStatus { @@ -45,8 +47,8 @@ /// allowed for threads associated with this port. Consult the Windows /// documentation for more information about this value. pub fn new(threads: u32) -> io::Result { - let ret = unsafe { CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0 as *mut _, 0, threads) }; - if ret.is_null() { + let ret = unsafe { CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, threads) }; + if ret == 0 { Err(io::Error::last_os_error()) } else { Ok(CompletionPort { @@ -65,7 +67,7 @@ /// trait can be provided to this function, such as `std::fs::File` and /// friends. pub fn add_handle(&self, token: usize, t: &T) -> io::Result<()> { - self._add(token, t.as_raw_handle()) + self._add(token, t.as_raw_handle() as HANDLE) } /// Associates a new `SOCKET` to this I/O completion port. @@ -82,10 +84,9 @@ } fn _add(&self, token: usize, handle: HANDLE) -> io::Result<()> { - assert_eq!(mem::size_of_val(&token), mem::size_of::()); - let ret = - unsafe { CreateIoCompletionPort(handle, self.handle.raw(), token as ULONG_PTR, 0) }; - if ret.is_null() { + assert_eq!(mem::size_of_val(&token), mem::size_of::()); + let ret = unsafe { CreateIoCompletionPort(handle, self.handle.raw(), token as usize, 0) }; + if ret == 0 { Err(io::Error::last_os_error()) } else { debug_assert_eq!(ret, self.handle.raw()); @@ -150,7 +151,7 @@ ); let mut removed = 0; let timeout = crate::dur2ms(timeout); - let len = cmp::min(list.len(), ::max_value() as usize) as ULONG; + let len = cmp::min(list.len(), ::max_value() as usize) as u32; let ret = unsafe { GetQueuedCompletionStatusEx( self.handle.raw(), @@ -186,22 +187,22 @@ } impl AsRawHandle for CompletionPort { - fn as_raw_handle(&self) -> HANDLE { - self.handle.raw() + fn as_raw_handle(&self) -> RawHandle { + self.handle.raw() as RawHandle } } impl FromRawHandle for CompletionPort { - unsafe fn from_raw_handle(handle: HANDLE) -> CompletionPort { + unsafe fn from_raw_handle(handle: RawHandle) -> CompletionPort { CompletionPort { - handle: Handle::new(handle), + handle: Handle::new(handle as HANDLE), } } } impl IntoRawHandle for CompletionPort { - fn into_raw_handle(self) -> HANDLE { - self.handle.into_raw() + fn into_raw_handle(self) -> RawHandle { + self.handle.into_raw() as RawHandle } } @@ -212,10 +213,10 @@ /// the `post` method. The parameters are opaquely passed through and not /// interpreted by the system at all. pub fn new(bytes: u32, token: usize, overlapped: *mut Overlapped) -> CompletionStatus { - assert_eq!(mem::size_of_val(&token), mem::size_of::()); + assert_eq!(mem::size_of_val(&token), mem::size_of::()); CompletionStatus(OVERLAPPED_ENTRY { dwNumberOfBytesTransferred: bytes, - lpCompletionKey: token as ULONG_PTR, + lpCompletionKey: token as usize, lpOverlapped: overlapped as *mut _, Internal: 0, }) @@ -227,6 +228,9 @@ /// This method will wrap the `OVERLAPPED_ENTRY` in a `CompletionStatus`, /// returning the wrapped structure. pub fn from_entry(entry: &OVERLAPPED_ENTRY) -> &CompletionStatus { + // Safety: CompletionStatus is repr(transparent) w/ OVERLAPPED_ENTRY, so + // a reference to one is guaranteed to be layout compatible with the + // reference to another. unsafe { &*(entry as *const _ as *const _) } } @@ -267,13 +271,10 @@ #[cfg(test)] mod tests { + use crate::iocp::{CompletionPort, CompletionStatus}; use std::mem; use std::time::Duration; - - use winapi::shared::basetsd::*; - use winapi::shared::winerror::*; - - use crate::iocp::{CompletionPort, CompletionStatus}; + use windows_sys::Win32::Foundation::*; #[test] fn is_send_sync() { @@ -283,7 +284,7 @@ #[test] fn token_right_size() { - assert_eq!(mem::size_of::(), mem::size_of::()); + assert_eq!(mem::size_of::(), mem::size_of::()); } #[test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -9,8 +9,8 @@ use std::io; use std::time::Duration; -use winapi::shared::minwindef::*; -use winapi::um::winbase::*; +use windows_sys::Win32::Foundation::BOOL; +use windows_sys::Win32::System::WindowsProgramming::INFINITE; #[cfg(test)] macro_rules! t { @@ -30,6 +30,8 @@ pub mod pipe; pub use crate::overlapped::Overlapped; +pub(crate) const TRUE: BOOL = 1; +pub(crate) const FALSE: BOOL = 0; fn cvt(i: BOOL) -> io::Result { if i == 0 { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/net.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/net.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/net.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/net.rs 2023-02-17 23:07:30.000000000 +0000 @@ -3,26 +3,23 @@ //! This module contains a number of extension traits for the types in //! `std::net` for Windows-specific functionality. +use crate::{FALSE, TRUE}; use std::cmp; use std::io; use std::mem; use std::net::{Ipv4Addr, Ipv6Addr, SocketAddrV4, SocketAddrV6}; use std::net::{SocketAddr, TcpListener, TcpStream, UdpSocket}; -use std::os::windows::prelude::*; +use std::os::windows::io::AsRawSocket; use std::sync::atomic::{AtomicUsize, Ordering}; -use winapi::ctypes::*; -use winapi::shared::guiddef::*; -use winapi::shared::in6addr::{in6_addr_u, IN6_ADDR}; -use winapi::shared::inaddr::{in_addr_S_un, IN_ADDR}; -use winapi::shared::minwindef::*; -use winapi::shared::minwindef::{FALSE, TRUE}; -use winapi::shared::ntdef::*; -use winapi::shared::ws2def::SOL_SOCKET; -use winapi::shared::ws2def::*; -use winapi::shared::ws2ipdef::*; -use winapi::um::minwinbase::*; -use winapi::um::winsock2::*; +use windows_sys::core::GUID; +use windows_sys::Win32::Networking::WinSock::{ + setsockopt, WSAGetLastError, WSAGetOverlappedResult, WSAIoctl, WSARecv, WSARecvFrom, WSASend, + WSASendTo, AF_INET, AF_INET6, IN6_ADDR, IN6_ADDR_0, IN_ADDR, IN_ADDR_0, LPFN_ACCEPTEX, + LPFN_CONNECTEX, LPFN_GETACCEPTEXSOCKADDRS, SOCKADDR, SOCKADDR_IN, SOCKADDR_IN6, SOCKADDR_IN6_0, + SOCKADDR_STORAGE, SOCKET, SOCKET_ERROR, SOL_SOCKET, WSABUF, WSA_IO_PENDING, +}; +use windows_sys::Win32::System::IO::OVERLAPPED; /// A type to represent a buffer in which a socket address will be stored. /// @@ -32,7 +29,7 @@ #[derive(Clone, Copy)] pub struct SocketAddrBuf { buf: SOCKADDR_STORAGE, - len: c_int, + len: i32, } /// A type to represent a buffer in which an accepted socket's address will be @@ -54,10 +51,10 @@ /// The parsed return value of `AcceptAddrsBuf`. pub struct AcceptAddrs<'a> { - local: LPSOCKADDR, - local_len: c_int, - remote: LPSOCKADDR, - remote_len: c_int, + local: *mut SOCKADDR, + local_len: i32, + remote: *mut SOCKADDR, + remote_len: i32, _data: &'a AcceptAddrsBuf, } @@ -450,7 +447,7 @@ } } -fn cvt(i: c_int, size: DWORD) -> io::Result> { +fn cvt(i: i32, size: u32) -> io::Result> { if i == SOCKET_ERROR { last_err() } else { @@ -465,7 +462,7 @@ #[repr(C)] pub(crate) union SocketAddrCRepr { v4: SOCKADDR_IN, - v6: SOCKADDR_IN6_LH, + v6: SOCKADDR_IN6, } impl SocketAddrCRepr { @@ -474,70 +471,65 @@ } } -fn socket_addr_to_ptrs(addr: &SocketAddr) -> (SocketAddrCRepr, c_int) { +fn socket_addr_to_ptrs(addr: &SocketAddr) -> (SocketAddrCRepr, i32) { match *addr { SocketAddr::V4(ref a) => { - let sin_addr = unsafe { - let mut s_un = mem::zeroed::(); - *s_un.S_addr_mut() = u32::from_ne_bytes(a.ip().octets()); - IN_ADDR { S_un: s_un } + let sin_addr = IN_ADDR { + S_un: IN_ADDR_0 { + S_addr: u32::from_ne_bytes(a.ip().octets()), + }, }; let sockaddr_in = SOCKADDR_IN { - sin_family: AF_INET as ADDRESS_FAMILY, + sin_family: AF_INET as _, sin_port: a.port().to_be(), sin_addr, sin_zero: [0; 8], }; let sockaddr = SocketAddrCRepr { v4: sockaddr_in }; - (sockaddr, mem::size_of::() as c_int) + (sockaddr, mem::size_of::() as i32) } SocketAddr::V6(ref a) => { - let sin6_addr = unsafe { - let mut u = mem::zeroed::(); - *u.Byte_mut() = a.ip().octets(); - IN6_ADDR { u } - }; - let u = unsafe { - let mut u = mem::zeroed::(); - *u.sin6_scope_id_mut() = a.scope_id(); - u - }; - - let sockaddr_in6 = SOCKADDR_IN6_LH { - sin6_family: AF_INET6 as ADDRESS_FAMILY, + let sockaddr_in6 = SOCKADDR_IN6 { + sin6_family: AF_INET6 as _, sin6_port: a.port().to_be(), - sin6_addr, + sin6_addr: IN6_ADDR { + u: IN6_ADDR_0 { + Byte: a.ip().octets(), + }, + }, sin6_flowinfo: a.flowinfo(), - u, + Anonymous: SOCKADDR_IN6_0 { + sin6_scope_id: a.scope_id(), + }, }; let sockaddr = SocketAddrCRepr { v6: sockaddr_in6 }; - (sockaddr, mem::size_of::() as c_int) + (sockaddr, mem::size_of::() as i32) } } } -unsafe fn ptrs_to_socket_addr(ptr: *const SOCKADDR, len: c_int) -> Option { - if (len as usize) < mem::size_of::() { +unsafe fn ptrs_to_socket_addr(ptr: *const SOCKADDR, len: i32) -> Option { + if (len as usize) < mem::size_of::() { return None; } - match (*ptr).sa_family as i32 { + match (*ptr).sa_family as _ { AF_INET if len as usize >= mem::size_of::() => { let b = &*(ptr as *const SOCKADDR_IN); - let ip = ntoh(*b.sin_addr.S_un.S_addr()); + let ip = ntoh(b.sin_addr.S_un.S_addr); let ip = Ipv4Addr::new( (ip >> 24) as u8, (ip >> 16) as u8, (ip >> 8) as u8, - (ip >> 0) as u8, + ip as u8, ); Some(SocketAddr::V4(SocketAddrV4::new(ip, ntoh(b.sin_port)))) } - AF_INET6 if len as usize >= mem::size_of::() => { - let b = &*(ptr as *const SOCKADDR_IN6_LH); - let arr = b.sin6_addr.u.Byte(); + AF_INET6 if len as usize >= mem::size_of::() => { + let b = &*(ptr as *const SOCKADDR_IN6); + let arr = &b.sin6_addr.u.Byte; let ip = Ipv6Addr::new( ((arr[0] as u16) << 8) | (arr[1] as u16), ((arr[2] as u16) << 8) | (arr[3] as u16), @@ -552,7 +544,7 @@ ip, ntoh(b.sin6_port), ntoh(b.sin6_flowinfo), - ntoh(*b.u.sin6_scope_id()), + ntoh(b.Anonymous.sin6_scope_id), ); Some(SocketAddr::V6(addr)) } @@ -562,7 +554,7 @@ unsafe fn slice2buf(slice: &[u8]) -> WSABUF { WSABUF { - len: cmp::min(slice.len(), ::max_value() as usize) as u_long, + len: cmp::min(slice.len(), ::max_value() as usize) as u32, buf: slice.as_ptr() as *mut _, } } @@ -586,7 +578,7 @@ ) -> io::Result> { let mut buf = slice2buf(buf); let mut flags = 0; - let mut bytes_read: DWORD = 0; + let mut bytes_read: u32 = 0; let r = WSARecv( self.as_raw_socket() as SOCKET, &mut buf, @@ -645,13 +637,13 @@ } fn connect_complete(&self) -> io::Result<()> { - const SO_UPDATE_CONNECT_CONTEXT: c_int = 0x7010; + const SO_UPDATE_CONNECT_CONTEXT: i32 = 0x7010; let result = unsafe { setsockopt( self.as_raw_socket() as SOCKET, - SOL_SOCKET, + SOL_SOCKET as _, SO_UPDATE_CONNECT_CONTEXT, - 0 as *const _, + 0 as *mut _, 0, ) }; @@ -675,29 +667,20 @@ ) -> io::Result> { static CONNECTEX: WsaExtension = WsaExtension { guid: GUID { - Data1: 0x25a207b9, - Data2: 0xddf3, - Data3: 0x4660, - Data4: [0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e], + data1: 0x25a207b9, + data2: 0xddf3, + data3: 0x4660, + data4: [0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e], }, val: AtomicUsize::new(0), }; - type ConnectEx = unsafe extern "system" fn( - SOCKET, - *const SOCKADDR, - c_int, - PVOID, - DWORD, - LPDWORD, - LPOVERLAPPED, - ) -> BOOL; let ptr = CONNECTEX.get(socket)?; assert!(ptr != 0); - let connect_ex = mem::transmute::<_, ConnectEx>(ptr); + let connect_ex = mem::transmute::<_, LPFN_CONNECTEX>(ptr).unwrap(); let (addr_buf, addr_len) = socket_addr_to_ptrs(addr); - let mut bytes_sent: DWORD = 0; + let mut bytes_sent: u32 = 0; let r = connect_ex( socket, addr_buf.as_ptr(), @@ -723,7 +706,7 @@ ) -> io::Result> { let mut buf = slice2buf(buf); let mut flags = 0; - let mut received_bytes: DWORD = 0; + let mut received_bytes: u32 = 0; let r = WSARecvFrom( self.as_raw_socket() as SOCKET, &mut buf, @@ -745,7 +728,7 @@ ) -> io::Result> { let mut buf = slice2buf(buf); let mut flags = 0; - let mut received_bytes: DWORD = 0; + let mut received_bytes: u32 = 0; let r = WSARecv( self.as_raw_socket() as SOCKET, &mut buf, @@ -814,27 +797,17 @@ ) -> io::Result { static ACCEPTEX: WsaExtension = WsaExtension { guid: GUID { - Data1: 0xb5367df1, - Data2: 0xcbac, - Data3: 0x11cf, - Data4: [0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92], + data1: 0xb5367df1, + data2: 0xcbac, + data3: 0x11cf, + data4: [0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92], }, val: AtomicUsize::new(0), }; - type AcceptEx = unsafe extern "system" fn( - SOCKET, - SOCKET, - PVOID, - DWORD, - DWORD, - DWORD, - LPDWORD, - LPOVERLAPPED, - ) -> BOOL; let ptr = ACCEPTEX.get(self.as_raw_socket() as SOCKET)?; assert!(ptr != 0); - let accept_ex = mem::transmute::<_, AcceptEx>(ptr); + let accept_ex = mem::transmute::<_, LPFN_ACCEPTEX>(ptr).unwrap(); let mut bytes = 0; let (a, b, c, d) = (*addrs).args(); @@ -858,15 +831,15 @@ } fn accept_complete(&self, socket: &TcpStream) -> io::Result<()> { - const SO_UPDATE_ACCEPT_CONTEXT: c_int = 0x700B; + const SO_UPDATE_ACCEPT_CONTEXT: i32 = 0x700B; let me = self.as_raw_socket(); let result = unsafe { setsockopt( socket.as_raw_socket() as SOCKET, - SOL_SOCKET, + SOL_SOCKET as _, SO_UPDATE_ACCEPT_CONTEXT, - &me as *const _ as *const _, - mem::size_of_val(&me) as c_int, + &me as *const _ as *mut _, + mem::size_of_val(&me) as i32, ) }; if result == 0 { @@ -889,7 +862,7 @@ pub fn new() -> SocketAddrBuf { SocketAddrBuf { buf: unsafe { mem::zeroed() }, - len: mem::size_of::() as c_int, + len: mem::size_of::() as i32, } } @@ -907,23 +880,13 @@ static GETACCEPTEXSOCKADDRS: WsaExtension = WsaExtension { guid: GUID { - Data1: 0xb5367df2, - Data2: 0xcbac, - Data3: 0x11cf, - Data4: [0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92], + data1: 0xb5367df2, + data2: 0xcbac, + data3: 0x11cf, + data4: [0x95, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92], }, val: AtomicUsize::new(0), }; -type GetAcceptExSockaddrs = unsafe extern "system" fn( - PVOID, - DWORD, - DWORD, - DWORD, - *mut LPSOCKADDR, - LPINT, - *mut LPSOCKADDR, - LPINT, -); impl AcceptAddrsBuf { /// Creates a new blank buffer ready to be passed to a call to @@ -948,7 +911,7 @@ let ptr = GETACCEPTEXSOCKADDRS.get(socket.as_raw_socket() as SOCKET)?; assert!(ptr != 0); unsafe { - let get_sockaddrs = mem::transmute::<_, GetAcceptExSockaddrs>(ptr); + let get_sockaddrs = mem::transmute::<_, LPFN_GETACCEPTEXSOCKADDRS>(ptr).unwrap(); let (a, b, c, d) = self.args(); get_sockaddrs( a, @@ -964,13 +927,14 @@ } } - fn args(&self) -> (PVOID, DWORD, DWORD, DWORD) { + #[allow(deref_nullptr)] + fn args(&self) -> (*mut std::ffi::c_void, u32, u32, u32) { let remote_offset = unsafe { &(*(0 as *const AcceptAddrsBuf)).remote as *const _ as usize }; ( self as *const _ as *mut _, 0, - remote_offset as DWORD, - (mem::size_of_val(self) - remote_offset) as DWORD, + remote_offset as u32, + (mem::size_of_val(self) - remote_offset) as u32, ) } } @@ -995,14 +959,18 @@ } let mut ret = 0 as usize; let mut bytes = 0; + + // https://github.com/microsoft/win32metadata/issues/671 + const SIO_GET_EXTENSION_FUNCTION_POINTER: u32 = 33_5544_3206u32; + let r = unsafe { WSAIoctl( socket, SIO_GET_EXTENSION_FUNCTION_POINTER, &self.guid as *const _ as *mut _, - mem::size_of_val(&self.guid) as DWORD, + mem::size_of_val(&self.guid) as u32, &mut ret as *mut _ as *mut _, - mem::size_of_val(&ret) as DWORD, + mem::size_of_val(&ret) as u32, &mut bytes, 0 as *mut _, None, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/overlapped.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/overlapped.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/overlapped.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/overlapped.rs 2023-02-17 23:07:30.000000000 +0000 @@ -3,9 +3,9 @@ use std::mem; use std::ptr; -use winapi::shared::ntdef::{HANDLE, NULL}; -use winapi::um::minwinbase::*; -use winapi::um::synchapi::*; +use windows_sys::Win32::Foundation::HANDLE; +use windows_sys::Win32::System::Threading::CreateEventW; +use windows_sys::Win32::System::IO::OVERLAPPED; /// A wrapper around `OVERLAPPED` to provide "rustic" accessors and /// initializers. @@ -34,8 +34,8 @@ /// `Overlapped`. The event is created with `bManualReset` set to `FALSE`, meaning after a /// single thread waits on the event, it will be reset. pub fn initialize_with_autoreset_event() -> io::Result { - let event = unsafe { CreateEventW(ptr::null_mut(), 0i32, 0i32, ptr::null()) }; - if event == NULL { + let event = unsafe { CreateEventW(ptr::null_mut(), 0i32, 0i32, ptr::null_mut()) }; + if event == 0 { return Err(io::Error::last_os_error()); } let mut overlapped = Self::zero(); @@ -67,15 +67,16 @@ /// handles that are on a seeking device that supports the concept of an /// offset. pub fn set_offset(&mut self, offset: u64) { - let s = unsafe { self.0.u.s_mut() }; - s.Offset = offset as u32; - s.OffsetHigh = (offset >> 32) as u32; + self.0.Anonymous.Anonymous.Offset = offset as u32; + self.0.Anonymous.Anonymous.OffsetHigh = (offset >> 32) as u32; } /// Reads the offset inside this overlapped structure. pub fn offset(&self) -> u64 { - let s = unsafe { self.0.u.s() }; - (s.Offset as u64) | ((s.OffsetHigh as u64) << 32) + unsafe { + (self.0.Anonymous.Anonymous.Offset as u64) + | ((self.0.Anonymous.Anonymous.OffsetHigh as u64) << 32) + } } /// Sets the `hEvent` field of this structure. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/pipe.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/pipe.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/miow/src/pipe.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/miow/src/pipe.rs 2023-02-17 23:07:30.000000000 +0000 @@ -43,26 +43,33 @@ //! //! - [win32 pipe docs](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/ipc/pipes.md) +use crate::FALSE; use std::cell::RefCell; use std::ffi::OsStr; use std::fs::{File, OpenOptions}; use std::io; -use std::io::prelude::*; -use std::os::windows::ffi::*; -use std::os::windows::io::*; +use std::io::{Read, Write}; +use std::os::windows::ffi::OsStrExt; +use std::os::windows::io::{AsRawHandle, FromRawHandle, IntoRawHandle, RawHandle}; use std::time::Duration; use crate::handle::Handle; use crate::overlapped::Overlapped; -use winapi::shared::minwindef::*; -use winapi::shared::ntdef::HANDLE; -use winapi::shared::winerror::*; -use winapi::um::fileapi::*; -use winapi::um::handleapi::*; -use winapi::um::ioapiset::*; -use winapi::um::minwinbase::*; -use winapi::um::namedpipeapi::*; -use winapi::um::winbase::*; + +use windows_sys::Win32::Foundation::{ + ERROR_IO_PENDING, ERROR_NO_DATA, ERROR_PIPE_BUSY, ERROR_PIPE_CONNECTED, HANDLE, + INVALID_HANDLE_VALUE, +}; +use windows_sys::Win32::Security::SECURITY_ATTRIBUTES; +use windows_sys::Win32::Storage::FileSystem::{ + FlushFileBuffers, FILE_FLAG_FIRST_PIPE_INSTANCE, FILE_FLAG_OVERLAPPED, PIPE_ACCESS_DUPLEX, + PIPE_ACCESS_INBOUND, PIPE_ACCESS_OUTBOUND, +}; +use windows_sys::Win32::System::Pipes::{ + ConnectNamedPipe, CreateNamedPipeW, CreatePipe, DisconnectNamedPipe, WaitNamedPipeW, + PIPE_REJECT_REMOTE_CLIENTS, PIPE_TYPE_BYTE, PIPE_UNLIMITED_INSTANCES, +}; +use windows_sys::Win32::System::IO::{GetOverlappedResult, OVERLAPPED}; /// Readable half of an anonymous pipe. #[derive(Debug)] @@ -80,12 +87,12 @@ #[derive(Debug)] pub struct NamedPipeBuilder { name: Vec, - dwOpenMode: DWORD, - dwPipeMode: DWORD, - nMaxInstances: DWORD, - nOutBufferSize: DWORD, - nInBufferSize: DWORD, - nDefaultTimeOut: DWORD, + dwOpenMode: u32, + dwPipeMode: u32, + nMaxInstances: u32, + nOutBufferSize: u32, + nInBufferSize: u32, + nDefaultTimeOut: u32, } /// Creates a new anonymous in-memory pipe, returning the read/write ends of the @@ -113,18 +120,18 @@ } impl AsRawHandle for AnonRead { - fn as_raw_handle(&self) -> HANDLE { - self.0.raw() + fn as_raw_handle(&self) -> RawHandle { + self.0.raw() as RawHandle } } impl FromRawHandle for AnonRead { - unsafe fn from_raw_handle(handle: HANDLE) -> AnonRead { - AnonRead(Handle::new(handle)) + unsafe fn from_raw_handle(handle: RawHandle) -> AnonRead { + AnonRead(Handle::new(handle as HANDLE)) } } impl IntoRawHandle for AnonRead { - fn into_raw_handle(self) -> HANDLE { - self.0.into_raw() + fn into_raw_handle(self) -> RawHandle { + self.0.into_raw() as RawHandle } } @@ -146,18 +153,18 @@ } impl AsRawHandle for AnonWrite { - fn as_raw_handle(&self) -> HANDLE { - self.0.raw() + fn as_raw_handle(&self) -> RawHandle { + self.0.raw() as RawHandle } } impl FromRawHandle for AnonWrite { - unsafe fn from_raw_handle(handle: HANDLE) -> AnonWrite { - AnonWrite(Handle::new(handle)) + unsafe fn from_raw_handle(handle: RawHandle) -> AnonWrite { + AnonWrite(Handle::new(handle as HANDLE)) } } impl IntoRawHandle for AnonWrite { - fn into_raw_handle(self) -> HANDLE { - self.0.into_raw() + fn into_raw_handle(self) -> RawHandle { + self.0.into_raw() as RawHandle } } @@ -225,7 +232,7 @@ fn _wait(addr: &OsStr, timeout: Option) -> io::Result<()> { let addr = addr.encode_wide().chain(Some(0)).collect::>(); let timeout = crate::dur2ms(timeout); - crate::cvt(unsafe { WaitNamedPipeW(addr.as_ptr(), timeout) }).map(|_| ()) + crate::cvt(unsafe { WaitNamedPipeW(addr.as_ptr() as _, timeout) }).map(|_| ()) } /// Connects this named pipe to a client, blocking until one becomes @@ -437,22 +444,22 @@ } impl AsRawHandle for NamedPipe { - fn as_raw_handle(&self) -> HANDLE { - self.0.raw() + fn as_raw_handle(&self) -> RawHandle { + self.0.raw() as RawHandle } } impl FromRawHandle for NamedPipe { - unsafe fn from_raw_handle(handle: HANDLE) -> NamedPipe { - NamedPipe(Handle::new(handle)) + unsafe fn from_raw_handle(handle: RawHandle) -> NamedPipe { + NamedPipe(Handle::new(handle as HANDLE)) } } impl IntoRawHandle for NamedPipe { - fn into_raw_handle(self) -> HANDLE { - self.0.into_raw() + fn into_raw_handle(self) -> RawHandle { + self.0.into_raw() as RawHandle } } -fn flag(slot: &mut DWORD, on: bool, val: DWORD) { +fn flag(slot: &mut u32, on: bool, val: u32) { if on { *slot |= val; } else { @@ -507,19 +514,19 @@ /// The first instance of a pipe can specify this value. A value of 255 /// indicates that there is no limit to the number of instances. pub fn max_instances(&mut self, instances: u8) -> &mut Self { - self.nMaxInstances = instances as DWORD; + self.nMaxInstances = instances as u32; self } /// Specifies the number of bytes to reserver for the output buffer pub fn out_buffer_size(&mut self, buffer: u32) -> &mut Self { - self.nOutBufferSize = buffer as DWORD; + self.nOutBufferSize = buffer as u32; self } /// Specifies the number of bytes to reserver for the input buffer pub fn in_buffer_size(&mut self, buffer: u32) -> &mut Self { - self.nInBufferSize = buffer as DWORD; + self.nInBufferSize = buffer as u32; self } @@ -543,7 +550,7 @@ attrs: *mut SECURITY_ATTRIBUTES, ) -> io::Result { let h = CreateNamedPipeW( - self.name.as_ptr(), + self.name.as_mut_ptr(), self.dwOpenMode, self.dwPipeMode, self.nMaxInstances, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"} \ No newline at end of file +{"files":{},"package":"b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.lock cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.lock --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.lock 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.lock 2023-02-17 23:07:30.000000000 +0000 @@ -74,7 +74,7 @@ [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" dependencies = [ "atomic-polyfill", "critical-section", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.56" name = "once_cell" -version = "1.17.0" +version = "1.17.1" authors = ["Aleksey Kladov "] exclude = [ "*.png", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/CHANGELOG.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/CHANGELOG.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/CHANGELOG.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/CHANGELOG.md 2023-02-17 23:07:30.000000000 +0000 @@ -4,6 +4,10 @@ - +## 1.17.1 + +- Make `OnceRef` implementation compliant with [strict provenance](https://github.com/rust-lang/rust/issues/95228). + ## 1.17.0 - Add `race::OnceRef` for storing a `&'a T`. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -454,7 +454,10 @@ /// Returns `None` if the cell is empty. #[inline] pub fn get(&self) -> Option<&T> { - // Safe due to `inner`'s invariant + // Safe due to `inner`'s invariant of being written to at most once. + // Had multiple writes to `inner` been allowed, a reference to the + // value we return now would become dangling by a write of a + // different value later. unsafe { &*self.inner.get() }.as_ref() } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/src/race.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/src/race.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/once_cell/src/race.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/once_cell/src/race.rs 2023-02-17 23:07:30.000000000 +0000 @@ -24,10 +24,11 @@ #[cfg(not(feature = "critical-section"))] use core::sync::atomic; -use atomic::{AtomicUsize, Ordering}; +use atomic::{AtomicPtr, AtomicUsize, Ordering}; use core::cell::UnsafeCell; use core::marker::PhantomData; use core::num::NonZeroUsize; +use core::ptr; /// A thread-safe cell which can be written to only once. #[derive(Default, Debug)] @@ -176,7 +177,7 @@ /// A thread-safe cell which can be written to only once. pub struct OnceRef<'a, T> { - inner: OnceNonZeroUsize, + inner: AtomicPtr, ghost: PhantomData>, } @@ -198,12 +199,13 @@ impl<'a, T> OnceRef<'a, T> { /// Creates a new empty cell. pub const fn new() -> OnceRef<'a, T> { - OnceRef { inner: OnceNonZeroUsize::new(), ghost: PhantomData } + OnceRef { inner: AtomicPtr::new(ptr::null_mut()), ghost: PhantomData } } /// Gets a reference to the underlying value. pub fn get(&self) -> Option<&'a T> { - self.inner.get().map(|ptr| unsafe { &*(ptr.get() as *const T) }) + let ptr = self.inner.load(Ordering::Acquire); + unsafe { ptr.as_ref() } } /// Sets the contents of this cell to `value`. @@ -211,8 +213,13 @@ /// Returns `Ok(())` if the cell was empty and `Err(value)` if it was /// full. pub fn set(&self, value: &'a T) -> Result<(), ()> { - let ptr = NonZeroUsize::new(value as *const T as usize).unwrap(); - self.inner.set(ptr) + let ptr = value as *const T as *mut T; + let exchange = + self.inner.compare_exchange(ptr::null_mut(), ptr, Ordering::AcqRel, Ordering::Acquire); + match exchange { + Ok(_) => Ok(()), + Err(_) => Err(()), + } } /// Gets the contents of the cell, initializing it with `f` if the cell was @@ -225,9 +232,11 @@ where F: FnOnce() -> &'a T, { - let f = || NonZeroUsize::new(f() as *const T as usize).unwrap(); - let ptr = self.inner.get_or_init(f); - unsafe { &*(ptr.get() as *const T) } + enum Void {} + match self.get_or_try_init(|| Ok::<&'a T, Void>(f())) { + Ok(val) => val, + Err(void) => match void {}, + } } /// Gets the contents of the cell, initializing it with `f` if @@ -241,9 +250,23 @@ where F: FnOnce() -> Result<&'a T, E>, { - let f = || f().map(|value| NonZeroUsize::new(value as *const T as usize).unwrap()); - let ptr = self.inner.get_or_try_init(f)?; - unsafe { Ok(&*(ptr.get() as *const T)) } + let mut ptr = self.inner.load(Ordering::Acquire); + + if ptr.is_null() { + // TODO replace with `cast_mut` when MSRV reaches 1.65.0 (also in `set`) + ptr = f()? as *const T as *mut T; + let exchange = self.inner.compare_exchange( + ptr::null_mut(), + ptr, + Ordering::AcqRel, + Ordering::Acquire, + ); + if let Err(old) = exchange { + ptr = old; + } + } + + Ok(unsafe { &*ptr }) } /// ```compile_fail diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"} \ No newline at end of file +{"files":{},"package":"5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,7 +13,7 @@ edition = "2018" rust-version = "1.31" name = "proc-macro2" -version = "1.0.50" +version = "1.0.51" authors = [ "David Tolnay ", "Alex Crichton ", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/fallback.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/fallback.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/fallback.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/fallback.rs 2023-02-17 23:07:30.000000000 +0000 @@ -234,7 +234,7 @@ #[cfg(use_proc_macro)] impl From for TokenStream { - fn from(inner: proc_macro::TokenStream) -> TokenStream { + fn from(inner: proc_macro::TokenStream) -> Self { inner .to_string() .parse() @@ -244,7 +244,7 @@ #[cfg(use_proc_macro)] impl From for proc_macro::TokenStream { - fn from(inner: TokenStream) -> proc_macro::TokenStream { + fn from(inner: TokenStream) -> Self { inner .to_string() .parse() @@ -253,7 +253,7 @@ } impl From for TokenStream { - fn from(tree: TokenTree) -> TokenStream { + fn from(tree: TokenTree) -> Self { let mut stream = RcVecBuilder::new(); push_token_from_proc_macro(stream.as_mut(), tree); TokenStream { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -86,7 +86,7 @@ //! a different thread. // Proc-macro2 types in rustdoc of other crates get linked to here. -#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.50")] +#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.51")] #![cfg_attr( any(proc_macro_span, super_unstable), feature(proc_macro_span, proc_macro_span_shrink) @@ -231,14 +231,14 @@ #[cfg(use_proc_macro)] impl From for TokenStream { - fn from(inner: proc_macro::TokenStream) -> TokenStream { + fn from(inner: proc_macro::TokenStream) -> Self { TokenStream::_new(inner.into()) } } #[cfg(use_proc_macro)] impl From for proc_macro::TokenStream { - fn from(inner: TokenStream) -> proc_macro::TokenStream { + fn from(inner: TokenStream) -> Self { inner.inner.into() } } @@ -574,25 +574,25 @@ } impl From for TokenTree { - fn from(g: Group) -> TokenTree { + fn from(g: Group) -> Self { TokenTree::Group(g) } } impl From for TokenTree { - fn from(g: Ident) -> TokenTree { + fn from(g: Ident) -> Self { TokenTree::Ident(g) } } impl From for TokenTree { - fn from(g: Punct) -> TokenTree { + fn from(g: Punct) -> Self { TokenTree::Punct(g) } } impl From for TokenTree { - fn from(g: Literal) -> TokenTree { + fn from(g: Literal) -> Self { TokenTree::Literal(g) } } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/parse.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/parse.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/parse.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/parse.rs 2023-02-17 23:07:30.000000000 +0000 @@ -472,6 +472,10 @@ _ => return Err(Reject), } } + if n > 255 { + // https://github.com/rust-lang/rust/pull/95251 + return Err(Reject); + } while let Some((i, ch)) = chars.next() { match ch { '"' if input.rest[i + 1..].starts_with(&input.rest[..n]) => { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/wrapper.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/wrapper.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/src/wrapper.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/src/wrapper.rs 2023-02-17 23:07:30.000000000 +0000 @@ -131,13 +131,13 @@ } impl From for TokenStream { - fn from(inner: proc_macro::TokenStream) -> TokenStream { + fn from(inner: proc_macro::TokenStream) -> Self { TokenStream::Compiler(DeferredTokenStream::new(inner)) } } impl From for proc_macro::TokenStream { - fn from(inner: TokenStream) -> proc_macro::TokenStream { + fn from(inner: TokenStream) -> Self { match inner { TokenStream::Compiler(inner) => inner.into_token_stream(), TokenStream::Fallback(inner) => inner.to_string().parse().unwrap(), @@ -146,7 +146,7 @@ } impl From for TokenStream { - fn from(inner: fallback::TokenStream) -> TokenStream { + fn from(inner: fallback::TokenStream) -> Self { TokenStream::Fallback(inner) } } @@ -170,7 +170,7 @@ } impl From for TokenStream { - fn from(token: TokenTree) -> TokenStream { + fn from(token: TokenTree) -> Self { if inside_proc_macro() { TokenStream::Compiler(DeferredTokenStream::new(into_compiler_token(token).into())) } else { @@ -263,13 +263,13 @@ } impl From for LexError { - fn from(e: proc_macro::LexError) -> LexError { + fn from(e: proc_macro::LexError) -> Self { LexError::Compiler(e) } } impl From for LexError { - fn from(e: fallback::LexError) -> LexError { + fn from(e: fallback::LexError) -> Self { LexError::Fallback(e) } } @@ -539,13 +539,13 @@ } impl From for crate::Span { - fn from(proc_span: proc_macro::Span) -> crate::Span { + fn from(proc_span: proc_macro::Span) -> Self { crate::Span::_new(Span::Compiler(proc_span)) } } impl From for Span { - fn from(inner: fallback::Span) -> Span { + fn from(inner: fallback::Span) -> Self { Span::Fallback(inner) } } @@ -929,7 +929,7 @@ } impl From for Literal { - fn from(s: fallback::Literal) -> Literal { + fn from(s: fallback::Literal) -> Self { Literal::Fallback(s) } } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/tests/test.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/tests/test.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/proc-macro2/tests/test.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/proc-macro2/tests/test.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,6 +1,11 @@ -#![allow(clippy::assertions_on_result_states, clippy::non_ascii_literal)] +#![allow( + clippy::assertions_on_result_states, + clippy::items_after_statements, + clippy::non_ascii_literal +)] use proc_macro2::{Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree}; +use std::iter; use std::panic; use std::str::{self, FromStr}; @@ -114,6 +119,25 @@ #[test] fn literal_raw_string() { "r\"\r\n\"".parse::().unwrap(); + + fn raw_string_literal_with_hashes(n: usize) -> String { + let mut literal = String::new(); + literal.push('r'); + literal.extend(iter::repeat('#').take(n)); + literal.push('"'); + literal.push('"'); + literal.extend(iter::repeat('#').take(n)); + literal + } + + raw_string_literal_with_hashes(255) + .parse::() + .unwrap(); + + // https://github.com/rust-lang/rust/pull/95251 + raw_string_literal_with_hashes(256) + .parse::() + .unwrap_err(); } #[test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/benches/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/benches/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/benches/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/benches/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,182 @@ +/// Benchmarks for rustix. +/// +/// To enable these benchmarks, add `--cfg=criterion` to RUSTFLAGS and enable +/// the "fs", "time", and "process" cargo features. + +#[cfg(any( + not(criterion), + not(feature = "fs"), + not(feature = "process"), + not(feature = "time"), + windows, + target_os = "emscripten", + target_os = "redox", + target_os = "wasi", +))] +fn main() { + unimplemented!() +} + +#[cfg(not(any( + not(criterion), + not(feature = "fs"), + not(feature = "process"), + not(feature = "time"), + 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"), + 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::{cwd, statat, AtFlags}; + + 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::::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::::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::{cwd, statat, AtFlags}; + + c.bench_function("simple statat cstr", |b| { + b.iter(|| { + statat(cwd(), rustix::cstr!("/"), AtFlags::empty()).unwrap(); + }) + }); + } + + #[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::::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"), + 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_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"), + windows, + target_os = "emscripten", + target_os = "redox", + target_os = "wasi", +)))] +criterion_main!(benches); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/build.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/build.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/build.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/build.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,225 @@ +use cc_dep::Build; +use std::env::var; +use std::io::Write; + +/// The directory for out-of-line ("outline") libraries. +const OUTLINE_PATH: &str = "src/backend/linux_raw/arch/outline"; + +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"); + + use_feature_or_nothing("rustc_attrs"); + + // Features only used in no-std configurations. + #[cfg(not(feature = "std"))] + { + use_feature_or_nothing("const_raw_ptr_deref"); + use_feature_or_nothing("core_ffi_c"); + use_feature_or_nothing("core_c_str"); + use_feature_or_nothing("alloc_c_string"); + } + + // Gather target information. + let arch = var("CARGO_CFG_TARGET_ARCH").unwrap(); + let asm_name = format!("{}/{}.s", OUTLINE_PATH, arch); + let asm_name_present = std::fs::metadata(&asm_name).is_ok(); + let os_name = 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" && endian == "big"; + let is_mips64eb = arch == "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 `--features=rustc-dep-of-std`. This is used when rustix is + // being used to build std, in which case `can_compile` doesn't work + // because `core` isn't available yet, but also, we can assume we have a + // recent compiler. + let feature_rustc_dep_of_std = var("CARGO_FEATURE_RUSTC_DEP_OF_STD").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 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 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. + if feature_use_libc + || cfg_use_libc + || os_name != "linux" + || !asm_name_present + || is_unsupported_abi + || miri + { + // Use the libc backend. + use_feature("libc"); + } else { + // Use the linux_raw backend. + use_feature("linux_raw"); + use_feature_or_nothing("core_intrinsics"); + + // Use inline asm if we have it, or outline asm otherwise. On PowerPC + // and MIPS, Rust's inline asm is considered experimental, so only use + // it if `--cfg=rustix_use_experimental_asm` is given. + if (feature_rustc_dep_of_std || can_compile("use std::arch::asm;")) + && (arch != "x86" || has_feature("naked_functions")) + && ((arch != "powerpc64" && arch != "mips" && arch != "mips64") + || rustix_use_experimental_asm) + { + use_feature("asm"); + if arch == "x86" { + use_feature("naked_functions"); + } + if rustix_use_experimental_asm { + use_feature("asm_experimental_arch"); + } + } else { + link_in_librustix_outline(&arch, &asm_name); + } + } + + // Detect whether the compiler requires us to use thumb mode on ARM. + if arch == "arm" && use_thumb_mode() { + use_feature("thumb_mode"); + } + + println!("cargo:rerun-if-env-changed=CARGO_CFG_RUSTIX_USE_EXPERIMENTAL_ASM"); +} + +/// Link in the desired version of librustix_outline_{arch}.a, containing the +/// outline assembly code for making syscalls. +fn link_in_librustix_outline(arch: &str, asm_name: &str) { + let name = format!("rustix_outline_{}", arch); + let profile = var("PROFILE").unwrap(); + let to = format!("{}/{}/lib{}.a", OUTLINE_PATH, profile, name); + println!("cargo:rerun-if-changed={}", to); + + // If "cc" is not enabled, use a pre-built library. + /*#[cfg(not(feature = "cc"))] + { + let _ = asm_name; + println!("cargo:rustc-link-search={}/{}", OUTLINE_PATH, profile); + println!("cargo:rustc-link-lib=static={}", name); + }*/ + + // If "cc" is enabled, build the library from source, update the pre-built + // version, and assert that the pre-built version is checked in. + //#[cfg(feature = "cc")] + { + let out_dir = var("OUT_DIR").unwrap(); + Build::new().file(&asm_name).compile(&name); + println!("cargo:rerun-if-changed={}", asm_name); + if std::fs::metadata(".git").is_ok() { + let from = format!("{}/lib{}.a", out_dir, name); + let prev_metadata = std::fs::metadata(&to); + std::fs::copy(&from, &to).unwrap(); + assert!( + prev_metadata.is_ok(), + "{} didn't previously exist; please inspect the new file and `git add` it", + to + ); + assert!( + std::process::Command::new("git") + .arg("diff") + .arg("--quiet") + .arg(&to) + .status() + .unwrap() + .success(), + "{} changed; please inspect the change and `git commit` it", + to + ); + } + } + println!("dh-cargo:deb-built-using={}=0={}", name, var("CARGO_MANIFEST_DIR").unwrap()); +} + +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 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>(test: T) -> bool { + use std::process::Stdio; + + let out_dir = var("OUT_DIR").unwrap(); + let rustc = var("RUSTC").unwrap(); + let target = var("TARGET").unwrap(); + + let mut cmd = if let Ok(wrapper) = var("CARGO_RUSTC_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("--out-dir") + .arg(out_dir); // Put the output somewhere inconsequential. + + // 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/.cargo-checksum.json 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +{"files":{},"package":"f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/Cargo.toml 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,214 @@ +# 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.48" +name = "rustix" +version = "0.36.8" +authors = [ + "Dan Gohman ", + "Jakub Konka ", +] +include = [ + "src", + "build.rs", + "Cargo.toml", + "COPYRIGHT", + "LICENSE*", + "/*.md", + "benches", +] +description = "Safe Rust bindings to POSIX/Unix/Linux/Winsock2-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" +autobenches = false + +[package.metadata.docs.rs] +features = ["all-apis"] +rustdoc-args = [ + "--cfg", + "doc_cfg", +] +targets = [ + "x86_64-unknown-linux-gnu", + "i686-unknown-linux-gnu", + "x86_64-apple-darwin", + "x86_64-pc-windows-msvc", +] + +[dependencies.bitflags] +version = "1.2.1" + +[dependencies.compiler_builtins] +version = "0.1.49" +optional = true + +[dependencies.core] +version = "1.0.0" +optional = true +package = "rustc-std-workspace-core" + +[dependencies.io-lifetimes] +version = "1.0.0" +features = ["close"] +optional = true +default-features = false + +[dependencies.itoa] +version = "1.0.1" +optional = true +default-features = false + +[dev-dependencies.flate2] +version = "1.0" + +[dev-dependencies.io-lifetimes] +version = "1.0.0" +features = ["close"] +default-features = false + +[dev-dependencies.libc] +version = "0.2.133" + +[dev-dependencies.libc_errno] +version = "0.2.8" +default-features = false +package = "errno" + +[dev-dependencies.memoffset] +version = "0.7.1" + +[dev-dependencies.serial_test] +version = ">= 0.5, < 0.7" + +[dev-dependencies.tempfile] +version = "3.2.0" + +[build-dependencies.cc_dep] +version = "1.0.68" +package = "cc" + +[features] +all-apis = [ + "fs", + "io_uring", + "mm", + "net", + "param", + "process", + "procfs", + "rand", + "runtime", + "termios", + "thread", + "time", +] +all-impls = [ + "os_pipe", +] +default = [ + "std", + "use-libc-auxv", +] +fs = [] +io_uring = [ + "fs", + "net", +] +mm = [] +net = [] +os_pipe = ["io-lifetimes/os_pipe"] +param = ["fs"] +process = [] +procfs = [ + "once_cell", + "itoa", + "fs", +] +rand = [] +runtime = [] +rustc-dep-of-std = [ + "core", + "compiler_builtins", + "linux-raw-sys/rustc-dep-of-std", + "bitflags/rustc-dep-of-std", +] +std = ["io-lifetimes"] +termios = [] +thread = [] +time = [] +use-libc = [ + "libc_errno", + "libc", +] +use-libc-auxv = ["libc"] +cc = [] + +[target."cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))".dependencies.linux-raw-sys] +version = "0.1.2" +features = [ + "general", + "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_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.libc] +version = "0.2.133" +features = ["extra_traits"] +optional = true + +[target."cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.libc_errno] +version = "0.2.8" +optional = true +default-features = false +package = "errno" + +[target."cfg(all(not(rustix_use_libc), not(miri), target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))".dependencies.linux-raw-sys] +version = "0.1.2" +features = [ + "general", + "errno", + "ioctl", + "no_std", +] +default-features = false + +[target."cfg(any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))))".dependencies.libc] +version = "0.2.133" +features = ["extra_traits"] + +[target."cfg(any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\")))))))".dependencies.libc_errno] +version = "0.2.8" +default-features = false +package = "errno" + +[target."cfg(any(target_os = \"android\", target_os = \"linux\"))".dependencies.once_cell] +version = "1.5.2" +optional = true diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 [report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/CONTRIBUTING.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/CONTRIBUTING.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/CONTRIBUTING.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/CONTRIBUTING.md 2023-02-17 23:07:30.000000000 +0000 @@ -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. + +``` +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 with the libc backend explicitly, additionally +enable the `use-libc` feature: + +``` +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/COPYRIGHT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/COPYRIGHT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/COPYRIGHT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/COPYRIGHT 2023-02-17 23:07:30.000000000 +0000 @@ -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 + or + + - the Apache License, Version 2.0 + or + , + - or the MIT license + or + , + +at your option. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/always-enable-cc.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/always-enable-cc.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/always-enable-cc.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/always-enable-cc.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,60 @@ +Always enable cc even if the feature is not enabled. + +Some Debian architectures need outline asm, and Debian does not ship pre-built +outline asm. + +Index: rust-rustix-0.35.12/Cargo.toml +=================================================================== +--- rust-rustix-0.35.12.orig/Cargo.toml ++++ rust-rustix-0.35.12/Cargo.toml +@@ -106,9 +106,9 @@ version = "0.6" + [dev-dependencies.tempfile] + version = "3.2.0" + +-[build-dependencies.cc] ++[build-dependencies.cc_dep] + version = "1.0.68" +-optional = true ++package = "cc" + + [features] + all-apis = [ +@@ -169,6 +169,7 @@ use-libc = [ + "libc", + ] + use-libc-auxv = ["libc"] ++cc = [] + + [target."cfg(all(any(target_os = \"android\", target_os = \"linux\"), any(rustix_use_libc, miri, not(all(target_os = \"linux\", any(target_arch = \"x86\", all(target_arch = \"x86_64\", target_pointer_width = \"64\"), all(target_endian = \"little\", any(target_arch = \"arm\", all(target_arch = \"aarch64\", target_pointer_width = \"64\"), target_arch = \"powerpc64\", target_arch = \"riscv64\", target_arch = \"mips\", target_arch = \"mips64\"))))))))".dependencies.linux-raw-sys] + version = "0.0.46" +Index: rust-rustix-0.35.12/build.rs +=================================================================== +--- rust-rustix-0.35.12.orig/build.rs ++++ rust-rustix-0.35.12/build.rs +@@ -1,5 +1,4 @@ +-#[cfg(feature = "cc")] +-use cc::Build; ++use cc_dep::Build; + use std::env::var; + use std::io::Write; + +@@ -118,16 +117,16 @@ fn link_in_librustix_outline(arch: &str, + println!("cargo:rerun-if-changed={}", to); + + // If "cc" is not enabled, use a pre-built library. +- #[cfg(not(feature = "cc"))] ++ /*#[cfg(not(feature = "cc"))] + { + let _ = asm_name; + println!("cargo:rustc-link-search={}/{}", OUTLINE_PATH, profile); + println!("cargo:rustc-link-lib=static={}", name); +- } ++ }*/ + + // If "cc" is enabled, build the library from source, update the pre-built + // version, and assert that the pre-built version is checked in. +- #[cfg(feature = "cc")] ++ //#[cfg(feature = "cc")] + { + let out_dir = var("OUT_DIR").unwrap(); + Build::new().file(&asm_name).compile(&name); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/built-using.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/built-using.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/built-using.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/built-using.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,12 @@ +Index: rust-rustix-0.35.12/build.rs +=================================================================== +--- rust-rustix-0.35.12.orig/build.rs ++++ rust-rustix-0.35.12/build.rs +@@ -153,6 +153,7 @@ fn link_in_librustix_outline(arch: &str, + ); + } + } ++ println!("dh-cargo:deb-built-using={}=0={}", name, var("CARGO_MANIFEST_DIR").unwrap()); + } + + fn use_thumb_mode() -> bool { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/disable-benches.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/disable-benches.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/disable-benches.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/disable-benches.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,23 @@ +Index: rustix/Cargo.toml +=================================================================== +--- rustix.orig/Cargo.toml ++++ rustix/Cargo.toml +@@ -44,6 +44,7 @@ categories = [ + ] + license = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" + repository = "https://github.com/bytecodealliance/rustix" ++autobenches = false + + [package.metadata.docs.rs] + features = ["all-apis"] +@@ -58,10 +59,6 @@ targets = [ + "x86_64-pc-windows-msvc", + ] + +-[[bench]] +-name = "mod" +-harness = false +- + [dependencies.bitflags] + version = "1.2.1" + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-alloc.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-alloc.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-alloc.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-alloc.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,27 @@ +Description: Drop alloc since rustc-std-worspace-alloc-dev isn't packaged +Author: John Goerzen +Last-Update: 2022-10-27 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -56,11 +56,6 @@ + name = "mod" + harness = false + +-[dependencies.alloc] +-version = "1.0.0" +-optional = true +-package = "rustc-std-workspace-alloc" +- + [dependencies.bitflags] + version = "1.2.1" + +@@ -149,7 +144,6 @@ + runtime = [] + rustc-dep-of-std = [ + "core", +- "alloc", + "compiler_builtins", + "linux-raw-sys/rustc-dep-of-std", + "bitflags/rustc-dep-of-std", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-deps.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-deps.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-deps.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/drop-deps.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,12 @@ +Description: Drop async-std and fs-err deps since they're not in Debian +Author: John Goerzen +Author: Peter Michael Green +Last-Update: 2022-10-29 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -131 +129,0 @@ +- "fs-err", +@@ -136 +132,0 @@ +-fs-err = ["io-lifetimes/fs-err"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/no-windows.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/no-windows.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/no-windows.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/no-windows.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,25 @@ +Description: Remove Windows dep +Author: John Goerzen +Last-Update: 2022-10-03 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: rustix/Cargo.toml +=================================================================== +--- rustix.orig/Cargo.toml ++++ rustix/Cargo.toml +@@ -222,15 +222,3 @@ + [target."cfg(any(target_os = \"android\", target_os = \"linux\"))".dependencies.once_cell] + version = "1.5.2" + optional = true +- +-[target."cfg(windows)".dependencies.windows-sys] +-version = "0.45.0" +-features = [ +- "Win32_Foundation", +- "Win32_Networking_WinSock", +- "Win32_NetworkManagement_IpHelper", +- "Win32_System_Threading", +-] +- +-[target."cfg(windows)".dev-dependencies.ctor] +-version = "0.1.21" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/relax-dep.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/relax-dep.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/relax-dep.diff 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/relax-dep.diff 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,13 @@ +Index: rustix/Cargo.toml +=================================================================== +--- rustix.orig/Cargo.toml ++++ rustix/Cargo.toml +@@ -98,7 +98,7 @@ package = "errno" + version = "0.6.5" + + [dev-dependencies.serial_test] +-version = "0.6" ++version = ">= 0.5, < 0.7" + + [dev-dependencies.tempfile] + version = "3.2.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,7 @@ +no-windows.diff +drop-deps.diff +drop-alloc.diff +always-enable-cc.diff +built-using.diff +disable-benches.diff +relax-dep.diff diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-APACHE 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,201 @@ + 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-Apache-2.0_WITH_LLVM-exception cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-Apache-2.0_WITH_LLVM-exception --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-Apache-2.0_WITH_LLVM-exception 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-Apache-2.0_WITH_LLVM-exception 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-MIT cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-MIT --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-MIT 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/LICENSE-MIT 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/ORG_CODE_OF_CONDUCT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/ORG_CODE_OF_CONDUCT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/ORG_CODE_OF_CONDUCT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/ORG_CODE_OF_CONDUCT.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 +[report@bytecodealliance.org](mailto:report@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/README.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,159 @@ +
+

rustix

+ +

+ Safe Rust bindings to POSIX/Unix/Linux/Winsock2 syscalls +

+ + A Bytecode Alliance project + +

+ Github Actions CI Status + zulip chat + crates.io page + docs.rs docs +

+
+ +`rustix` provides efficient memory-safe and [I/O-safe] wrappers to POSIX-like, +Unix-like, Linux, and Winsock2 syscall-like APIs, with configurable backends. +It uses Rust references, slices, and return values instead of raw pointers, and +[`io-lifetimes`] 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 Winsock2 on +Windows, the rest of the APIs do not support Windows; for higher-level and more +portable APIs built on this functionality, see the [`system-interface`], +[`cap-std`], and [`fs-set-times`] 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.48 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. On nightly Rust, they 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 Winsock2 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::fd`], and [`rustix::ffi`] are enabled +by default. The rest of the API is conditional with cargo feature flags: + +| Name | Description +| ---------- | --------------------- +| `fs` | [`rustix::fs`] and [`rustix::path`]—Filesystem operations. +| `io_uring` | [`rustix::io_uring`]—Linux io_uring. +| `mm` | [`rustix::mm`]—Memory map operations. +| `net` | [`rustix::net`] and [`rustix::path`]—Network-related operations. +| `param` | [`rustix::param`]—Process parameters. +| `process` | [`rustix::process`]—Process-associated operations. +| `rand` | [`rustix::rand`]—Random-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. + +[`rustix::fs`]: https://docs.rs/rustix/latest/rustix/fs/index.html +[`rustix::io_uring`]: https://docs.rs/rustix/latest/rustix/io_uring/index.html +[`rustix::mm`]: https://docs.rs/rustix/latest/rustix/mm/index.html +[`rustix::net`]: https://docs.rs/rustix/latest/rustix/net/index.html +[`rustix::param`]: https://docs.rs/rustix/latest/rustix/param/index.html +[`rustix::process`]: https://docs.rs/rustix/latest/rustix/process/index.html +[`rustix::rand`]: https://docs.rs/rustix/latest/rustix/rand/index.html +[`rustix::termios`]: https://docs.rs/rustix/latest/rustix/termios/index.html +[`rustix::thread`]: https://docs.rs/rustix/latest/rustix/thread/index.html +[`rustix::time`]: https://docs.rs/rustix/latest/rustix/time/index.html +[`rustix::io`]: https://docs.rs/rustix/latest/rustix/io/index.html +[`rustix::fd`]: https://docs.rs/rustix/latest/rustix/fd/index.html +[`rustix::ffi`]: https://docs.rs/rustix/latest/rustix/ffi/index.html +[`rustix::path`]: https://docs.rs/rustix/latest/rustix/path/index.html + +## Similar crates + +`rustix` is similar to [`nix`], [`simple_libc`], [`unix`], [`nc`], and +[`uapi`]. `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 [`sc`] and +[`scall`] crates, though `rustix` can use either the Rust `asm!` macro or +out-of-line `.s` files so it supports Rust versions from 1.48 through Nightly. +`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()` function 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.48. 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. + +[Rust on Debian stable]: https://packages.debian.org/stable/rust/rustc +[`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 +[`relibc`]: https://github.com/redox-os/relibc +[`syscall`]: https://crates.io/crates/syscall +[`sc`]: https://crates.io/crates/sc +[`scall`]: https://crates.io/crates/scall +[`system-interface`]: https://crates.io/crates/system-interface +[`openat`]: https://crates.io/crates/openat +[`openat2`]: https://crates.io/crates/openat2 +[`fs-set-times`]: https://crates.io/crates/fs-set-times +[`io-lifetimes`]: https://crates.io/crates/io-lifetimes +[`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 +[`bitflags`]: https://crates.io/crates/bitflags +[`Arg`]: https://docs.rs/rustix/latest/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://docs.rs/io-lifetimes/latest/io_lifetimes/struct.OwnedFd.html +[`AsFd`]: https://docs.rs/io-lifetimes/latest/io_lifetimes/trait.AsFd.html +[`NOSYS`]: https://docs.rs/rustix/latest/rustix/io/struct.Errno.html#associatedconstant.NOSYS diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/SECURITY.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/SECURITY.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/SECURITY.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/SECURITY.md 2023-02-17 23:07:30.000000000 +0000 @@ -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 [security@bytecodealliance.org](mailto:security@bytecodealliance.org). 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/conv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/conv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/conv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/conv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,222 @@ +//! 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. + +#![allow(dead_code)] + +use super::c; +use super::fd::{AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, LibcFd, OwnedFd, RawFd}; +#[cfg(not(windows))] +#[cfg(feature = "fs")] +use super::offset::libc_off_t; +#[cfg(not(windows))] +use crate::ffi::CStr; +use crate::io; +#[cfg(windows)] +use core::convert::TryInto; + +#[cfg(not(windows))] +#[inline] +pub(super) fn c_str(c: &CStr) -> *const c::c_char { + c.as_ptr() +} + +#[cfg(not(windows))] +#[inline] +pub(super) fn no_fd() -> LibcFd { + -1 +} + +#[inline] +pub(super) fn borrowed_fd(fd: BorrowedFd<'_>) -> LibcFd { + fd.as_raw_fd() as LibcFd +} + +#[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()) + } +} + +#[inline] +pub(super) fn syscall_ret(raw: c::c_long) -> io::Result<()> { + if raw == 0 { + Ok(()) + } else { + Err(io::Errno::last_os_error()) + } +} + +#[inline] +pub(super) fn nonnegative_ret(raw: c::c_int) -> io::Result<()> { + if raw >= 0 { + Ok(()) + } else { + Err(io::Errno::last_os_error()) + } +} + +#[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 { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(raw) + } +} + +#[inline] +pub(super) fn ret_u32(raw: c::c_int) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(raw as u32) + } +} + +#[inline] +pub(super) fn ret_ssize_t(raw: c::ssize_t) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(raw) + } +} + +#[inline] +pub(super) fn syscall_ret_ssize_t(raw: c::c_long) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(raw as c::ssize_t) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(super) fn syscall_ret_u32(raw: c::c_long) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + let r32 = raw as u32; + + // Converting `raw` to `u32` should be lossless. + debug_assert_eq!(r32 as c::c_long, raw); + + Ok(r32) + } +} + +#[cfg(not(windows))] +#[cfg(feature = "fs")] +#[inline] +pub(super) fn ret_off_t(raw: libc_off_t) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(raw) + } +} + +#[cfg(not(windows))] +#[inline] +pub(super) fn ret_pid_t(raw: c::pid_t) -> io::Result { + 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 { + if raw == !0 { + Err(io::Errno::last_os_error()) + } else { + Ok(OwnedFd::from_raw_fd(raw as RawFd)) + } +} + +#[inline] +pub(super) fn ret_discarded_fd(raw: LibcFd) -> io::Result<()> { + if raw == !0 { + Err(io::Errno::last_os_error()) + } else { + Ok(()) + } +} + +#[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 a `c_long` returned from `syscall` to an `OwnedFd`, if valid. +/// +/// # Safety +/// +/// The caller must ensure that this is the return value of a `syscall` call +/// which returns an owned file descriptor. +#[cfg(not(windows))] +#[inline] +pub(super) unsafe fn syscall_ret_owned_fd(raw: c::c_long) -> io::Result { + if raw == -1 { + Err(io::Errno::last_os_error()) + } else { + Ok(OwnedFd::from_raw_fd(raw as RawFd)) + } +} + +/// Convert the buffer-length argument value of a `send` or `recv` call. +#[cfg(not(windows))] +#[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(windows))] +#[inline] +pub(super) fn ret_send_recv(len: isize) -> io::Result { + ret_ssize_t(len) +} + +/// Convert the return value of a `send` or `recv` call. +#[cfg(windows)] +#[inline] +pub(super) fn ret_send_recv(len: i32) -> io::Result { + ret_ssize_t(len as isize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/dir.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/dir.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/dir.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/dir.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,487 @@ +use super::super::c; +use super::super::conv::owned_fd; +#[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] +use super::types::FileType; +use crate::fd::{AsFd, BorrowedFd}; +use crate::ffi::CStr; +#[cfg(target_os = "wasi")] +use crate::ffi::CString; +use crate::fs::{fcntl_getfl, fstat, openat, Mode, OFlags, Stat}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use crate::fs::{fstatfs, StatFs}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use crate::fs::{fstatvfs, StatVfs}; +use crate::io; +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +use crate::process::fchdir; +#[cfg(target_os = "wasi")] +use alloc::borrow::ToOwned; +#[cfg(not(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", + target_os = "openbsd", +)))] +use c::dirent as libc_dirent; +#[cfg(not(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +)))] +use c::readdir as libc_readdir; +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +))] +use c::{dirent64 as libc_dirent, readdir64 as libc_readdir}; +use core::fmt; +use core::mem::zeroed; +use core::ptr::NonNull; +use libc_errno::{errno, set_errno, Errno}; + +/// `DIR*` +#[repr(transparent)] +pub struct Dir(NonNull); + +impl Dir { + /// Construct a `Dir` that reads entries from the given directory + /// file descriptor. + #[inline] + pub fn read_from(fd: Fd) -> io::Result { + Self::_read_from(fd.as_fd()) + } + + #[inline] + fn _read_from(fd: BorrowedFd<'_>) -> io::Result { + // 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 = openat(fd, cstr!("."), flags | OFlags::CLOEXEC, Mode::empty())?; + + 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)) + } else { + let err = io::Errno::last_os_error(); + let _ = c::close(raw); + Err(err) + } + } + } + + /// `rewinddir(self)` + #[inline] + pub fn rewind(&mut self) { + unsafe { c::rewinddir(self.0.as_ptr()) } + } + + /// `readdir(self)`, where `None` means the end of the directory. + pub fn read(&mut self) -> Option> { + set_errno(Errno(0)); + let dirent_ptr = unsafe { libc_readdir(self.0.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. + Some(Err(io::Errno(curr_errno))) + } + } else { + // We successfully read an entry. + unsafe { + // 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_ptr); + + let result = DirEntry { + dirent: read_dirent(&*dirent_ptr.cast()), + + #[cfg(target_os = "wasi")] + name: CStr::from_ptr((*dirent_ptr).d_name.as_ptr()).to_owned(), + }; + + Some(Ok(result)) + } + } + } + + /// `fstat(self)` + #[inline] + pub fn stat(&self) -> io::Result { + fstat(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.0.as_ptr())) }) + } + + /// `fstatfs(self)` + #[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", + )))] + #[inline] + pub fn statfs(&self) -> io::Result { + fstatfs(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.0.as_ptr())) }) + } + + /// `fstatvfs(self)` + #[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", + )))] + #[inline] + pub fn statvfs(&self) -> io::Result { + fstatvfs(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.0.as_ptr())) }) + } + + /// `fchdir(self)` + #[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] + #[inline] + pub fn chdir(&self) -> io::Result<()> { + fchdir(unsafe { BorrowedFd::borrow_raw(c::dirfd(self.0.as_ptr())) }) + } +} + +// A `dirent` pointer returned from `readdir` may not point to a full `dirent` +// struct, as the name is NUL-terminated and memory may not be allocated for +// the full extent of the struct. Copy the fields one at a time. +unsafe fn read_dirent(input: &libc_dirent) -> libc_dirent { + #[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "illumos", + target_os = "solaris" + )))] + let d_type = input.d_type; + + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "wasi", + )))] + let d_off = input.d_off; + + #[cfg(target_os = "aix")] + let d_offset = input.d_offset; + + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd", + )))] + let d_ino = input.d_ino; + + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd" + ))] + let d_fileno = input.d_fileno; + + #[cfg(not(any(target_os = "dragonfly", target_os = "wasi")))] + let d_reclen = input.d_reclen; + + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd", + target_os = "ios", + target_os = "macos", + ))] + let d_namlen = input.d_namlen; + + #[cfg(any(target_os = "ios", target_os = "macos"))] + let d_seekoff = input.d_seekoff; + + #[cfg(target_os = "haiku")] + let d_dev = input.d_dev; + #[cfg(target_os = "haiku")] + let d_pdev = input.d_pdev; + #[cfg(target_os = "haiku")] + let d_pino = input.d_pino; + + // Construct the input. Rust will give us an error if any OS has a input + // with a field that we missed here. And we can avoid blindly copying the + // whole `d_name` field, which may not be entirely allocated. + #[cfg_attr(target_os = "wasi", allow(unused_mut))] + #[cfg(not(any(target_os = "freebsd", target_os = "dragonfly")))] + let mut dirent = libc_dirent { + #[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "illumos", + target_os = "solaris" + )))] + d_type, + #[cfg(not(any( + target_os = "aix", + target_os = "freebsd", // Until FreeBSD 12 + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "wasi", + )))] + d_off, + #[cfg(target_os = "aix")] + d_offset, + #[cfg(not(any(target_os = "freebsd", target_os = "netbsd", target_os = "openbsd")))] + d_ino, + #[cfg(any(target_os = "freebsd", target_os = "netbsd", target_os = "openbsd"))] + d_fileno, + #[cfg(not(target_os = "wasi"))] + d_reclen, + #[cfg(any( + target_os = "aix", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + d_namlen, + #[cfg(any(target_os = "ios", target_os = "macos"))] + d_seekoff, + // The `d_name` field is NUL-terminated, and we need to be careful not + // to read bytes past the NUL, even though they're within the nominal + // extent of the `struct dirent`, because they may not be allocated. So + // don't read it from `dirent_ptr`. + // + // In theory this could use `MaybeUninit::uninit().assume_init()`, but + // that [invokes undefined behavior]. + // + // [invokes undefined behavior]: https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#initialization-invariant + d_name: zeroed(), + #[cfg(target_os = "openbsd")] + __d_padding: zeroed(), + #[cfg(target_os = "haiku")] + d_dev, + #[cfg(target_os = "haiku")] + d_pdev, + #[cfg(target_os = "haiku")] + d_pino, + }; + /* + pub d_ino: ino_t, + pub d_pino: i64, + pub d_reclen: ::c_ushort, + pub d_name: [::c_char; 1024], // Max length is _POSIX_PATH_MAX + // */ + + // On dragonfly and FreeBSD 12, `dirent` has some non-public padding fields + // so we can't directly initialize it. + #[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] + let mut dirent = { + let mut dirent: libc_dirent = zeroed(); + dirent.d_fileno = d_fileno; + dirent.d_namlen = d_namlen; + dirent.d_type = d_type; + #[cfg(target_os = "freebsd")] + { + dirent.d_reclen = d_reclen; + } + dirent + }; + + // Copy from d_name, reading up to and including the first NUL. + #[cfg(not(target_os = "wasi"))] + { + let name_len = CStr::from_ptr(input.d_name.as_ptr()) + .to_bytes_with_nul() + .len(); + dirent.d_name[..name_len].copy_from_slice(&input.d_name[..name_len]); + } + + dirent +} + +/// `Dir` implements `Send` but not `Sync`, because we use `readdir` which is +/// not guaranteed to be thread-safe. Users can wrap this in a `Mutex` if they +/// need `Sync`, which is effectively what'd need to do to implement `Sync` +/// ourselves. +unsafe impl Send for Dir {} + +impl Drop for Dir { + #[inline] + fn drop(&mut self) { + unsafe { c::closedir(self.0.as_ptr()) }; + } +} + +impl Iterator for Dir { + type Item = io::Result; + + #[inline] + fn next(&mut self) -> Option { + Self::read(self) + } +} + +impl fmt::Debug for Dir { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("Dir") + .field("fd", unsafe { &c::dirfd(self.0.as_ptr()) }) + .finish() + } +} + +/// `struct dirent` +#[derive(Debug)] +pub struct DirEntry { + dirent: libc_dirent, + + #[cfg(target_os = "wasi")] + name: CString, +} + +impl DirEntry { + /// Returns the file name of this directory entry. + #[inline] + pub fn file_name(&self) -> &CStr { + #[cfg(not(target_os = "wasi"))] + unsafe { + CStr::from_ptr(self.dirent.d_name.as_ptr()) + } + + #[cfg(target_os = "wasi")] + &self.name + } + + /// Returns the type of this directory entry. + #[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "illumos", + target_os = "solaris" + )))] + #[inline] + pub fn file_type(&self) -> FileType { + FileType::from_dirent_d_type(self.dirent.d_type) + } + + /// Return the inode number of this directory entry. + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd", + )))] + #[inline] + pub fn ino(&self) -> u64 { + self.dirent.d_ino as u64 + } + + /// Return the inode number of this directory entry. + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "netbsd", + target_os = "openbsd", + ))] + #[inline] + pub fn ino(&self) -> u64 { + #[allow(clippy::useless_conversion)] + self.dirent.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; + use core::mem::{align_of, size_of}; + + // Check that the basic layouts match. + assert_eq!(size_of::(), size_of::()); + assert_eq!(align_of::(), align_of::()); + + // 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, + ) + } + ); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/makedev.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/makedev.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/makedev.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/makedev.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,90 @@ +#[cfg(not(all(target_os = "android", target_pointer_width = "32")))] +use super::super::c; +use crate::fs::Dev; + +#[cfg(not(any(target_os = "android", target_os = "emscripten")))] +#[inline] +pub(crate) fn makedev(maj: u32, min: u32) -> Dev { + c::makedev(maj, min) +} + +#[cfg(all(target_os = "android", not(target_pointer_width = "32")))] +#[inline] +pub(crate) fn makedev(maj: u32, min: u32) -> Dev { + // Android's `makedev` oddly has signed argument types. + 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(not(any(target_os = "android", target_os = "emscripten")))] +#[inline] +pub(crate) fn major(dev: Dev) -> u32 { + unsafe { c::major(dev) } +} + +#[cfg(all(target_os = "android", not(target_pointer_width = "32")))] +#[inline] +pub(crate) fn major(dev: Dev) -> u32 { + // Android's `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(target_os = "android", target_os = "emscripten")))] +#[inline] +pub(crate) fn minor(dev: Dev) -> u32 { + unsafe { c::minor(dev) } +} + +#[cfg(all(target_os = "android", not(target_pointer_width = "32")))] +#[inline] +pub(crate) fn minor(dev: Dev) -> u32 { + // Android's `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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +#[cfg(not(target_os = "redox"))] +pub(crate) mod dir; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub(crate) mod makedev; +#[cfg(not(windows))] +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1807 @@ +//! libc syscalls supporting `rustix::fs`. + +use super::super::c; +use super::super::conv::{ + borrowed_fd, c_str, ret, ret_c_int, ret_off_t, ret_owned_fd, ret_ssize_t, +}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::super::conv::{syscall_ret, syscall_ret_owned_fd, syscall_ret_ssize_t}; +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +use super::super::offset::libc_fallocate; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +use super::super::offset::libc_posix_fadvise; +#[cfg(not(any( + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "linux", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +use super::super::offset::libc_posix_fallocate; +use super::super::offset::{libc_fstat, libc_fstatat, libc_ftruncate, libc_lseek, libc_off_t}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use super::super::offset::{libc_fstatfs, libc_statfs}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use super::super::offset::{libc_fstatvfs, libc_statvfs}; +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +use super::super::time::types::LibcTimespec; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::ffi::CStr; +#[cfg(any(target_os = "ios", target_os = "macos"))] +use crate::ffi::CString; +#[cfg(not(any(target_os = "illumos", target_os = "solaris")))] +use crate::fs::Access; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +use crate::fs::Advice; +#[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +use crate::fs::FallocateFlags; +#[cfg(not(any(target_os = "solaris", target_os = "wasi")))] +use crate::fs::FlockOperation; +#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] +use crate::fs::MemfdFlags; +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +use crate::fs::SealFlags; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use crate::fs::StatFs; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::fs::{cwd, RenameFlags, ResolveFlags, Statx, StatxFlags}; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +use crate::fs::{Dev, FileType}; +use crate::fs::{Mode, OFlags, Stat, Timestamps}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use crate::fs::{StatVfs, StatVfsMountFlags}; +use crate::io::{self, SeekFrom}; +#[cfg(not(target_os = "wasi"))] +use crate::process::{Gid, Uid}; +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +use crate::utils::as_ptr; +use core::convert::TryInto; +#[cfg(any( + target_os = "android", + target_os = "ios", + target_os = "linux", + target_os = "macos", +))] +use core::mem::size_of; +use core::mem::MaybeUninit; +#[cfg(any(target_os = "android", target_os = "linux"))] +use core::ptr::null; +#[cfg(any( + target_os = "android", + target_os = "ios", + target_os = "linux", + target_os = "macos", +))] +use core::ptr::null_mut; +#[cfg(any(target_os = "ios", target_os = "macos"))] +use { + super::super::conv::nonnegative_ret, + crate::fs::{copyfile_state_t, CloneFlags, CopyfileFlags}, +}; +#[cfg(not(target_os = "redox"))] +use {super::super::offset::libc_openat, crate::fs::AtFlags}; + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __utimensat64(c::c_int, *const c::c_char, *const LibcTimespec, c::c_int) -> c::c_int); +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __futimens64(c::c_int, *const LibcTimespec) -> c::c_int); + +/// 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"))] +fn openat_via_syscall( + dirfd: BorrowedFd<'_>, + path: &CStr, + oflags: OFlags, + mode: Mode, +) -> io::Result { + unsafe { + let dirfd = borrowed_fd(dirfd); + let path = c_str(path); + let oflags = oflags.bits(); + let mode = c::c_uint::from(mode.bits()); + ret_owned_fd(c::syscall( + c::SYS_openat, + c::c_long::from(dirfd), + path, + c::c_long::from(oflags), + mode as c::c_long, + ) as c::c_int) + } +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn openat( + dirfd: BorrowedFd<'_>, + path: &CStr, + oflags: OFlags, + mode: Mode, +) -> io::Result { + // Work around . + // Basically old glibc versions don't handle O_TMPFILE correctly. + #[cfg(all(unix, target_env = "gnu"))] + if oflags.contains(OFlags::TMPFILE) && crate::backend::if_glibc_is_less_than_2_25() { + return openat_via_syscall(dirfd, path, oflags, mode); + } + unsafe { + // Pass `mode` as a `c_uint` even if `mode_t` is narrower, since + // `libc_openat` is declared as a variadic function and narrower + // arguments are promoted. + ret_owned_fd(libc_openat( + borrowed_fd(dirfd), + c_str(path), + oflags.bits(), + c::c_uint::from(mode.bits()), + )) + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub(crate) fn statfs(filename: &CStr) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(libc_statfs(c_str(filename), result.as_mut_ptr()))?; + Ok(result.assume_init()) + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub(crate) fn statvfs(filename: &CStr) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(libc_statvfs(c_str(filename), result.as_mut_ptr()))?; + Ok(libc_statvfs_to_statvfs(result.assume_init())) + } +} + +#[cfg(not(target_os = "redox"))] +#[inline] +pub(crate) fn readlinkat(dirfd: BorrowedFd<'_>, path: &CStr, buf: &mut [u8]) -> io::Result { + unsafe { + ret_ssize_t(c::readlinkat( + borrowed_fd(dirfd), + c_str(path), + buf.as_mut_ptr().cast::(), + buf.len(), + )) + .map(|nread| nread as usize) + } +} + +#[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(any(target_os = "android", target_os = "linux"))] +pub(crate) fn getdents_uninit( + fd: BorrowedFd<'_>, + buf: &mut [MaybeUninit], +) -> io::Result { + unsafe { + syscall_ret_ssize_t(c::syscall( + c::SYS_getdents64, + fd, + buf.as_mut_ptr().cast::(), + buf.len(), + )) + } + .map(|nread| nread as usize) +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn linkat( + old_dirfd: BorrowedFd<'_>, + old_path: &CStr, + new_dirfd: BorrowedFd<'_>, + new_path: &CStr, + flags: AtFlags, +) -> io::Result<()> { + unsafe { + ret(c::linkat( + borrowed_fd(old_dirfd), + c_str(old_path), + borrowed_fd(new_dirfd), + c_str(new_path), + flags.bits(), + )) + } +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn unlinkat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result<()> { + unsafe { ret(c::unlinkat(borrowed_fd(dirfd), c_str(path), flags.bits())) } +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn renameat( + old_dirfd: BorrowedFd<'_>, + old_path: &CStr, + new_dirfd: BorrowedFd<'_>, + new_path: &CStr, +) -> io::Result<()> { + 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<()> { + // `getrandom` wasn't supported in glibc until 2.28. + weak_or_syscall! { + fn renameat2( + olddirfd: c::c_int, + oldpath: *const c::c_char, + newdirfd: c::c_int, + newpath: *const c::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(), + )) + } +} + +/// At present, `libc` only has `renameat2` defined for glibc. On other +/// ABIs, `RenameFlags` has no flags defined, and we use plain `renameat`. +#[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<()> { + assert!(flags.is_empty()); + renameat(old_dirfd, old_path, new_dirfd, 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), + )) + } +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn statat(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result { + // 32-bit and mips64 Linux: `struct stat64` is not y2038 compatible; use + // `statx`. + #[cfg(all( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), + ))] + { + match 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( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), + )))] + unsafe { + let mut stat = MaybeUninit::::uninit(); + ret(libc_fstatat( + borrowed_fd(dirfd), + c_str(path), + stat.as_mut_ptr(), + flags.bits(), + ))?; + Ok(stat.assume_init()) + } +} + +#[cfg(all( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), +))] +fn statat_old(dirfd: BorrowedFd<'_>, path: &CStr, flags: AtFlags) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(libc_fstatat( + borrowed_fd(dirfd), + c_str(path), + result.as_mut_ptr(), + flags.bits(), + ))?; + stat64_to_stat(result.assume_init()) + } +} + +#[cfg(not(any( + target_os = "emscripten", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", +)))] +pub(crate) fn accessat( + dirfd: BorrowedFd<'_>, + path: &CStr, + access: Access, + flags: AtFlags, +) -> io::Result<()> { + unsafe { + ret(c::faccessat( + borrowed_fd(dirfd), + c_str(path), + access.bits(), + flags.bits(), + )) + } +} + +#[cfg(target_os = "emscripten")] +pub(crate) fn accessat( + _dirfd: BorrowedFd<'_>, + _path: &CStr, + _access: Access, + _flags: AtFlags, +) -> io::Result<()> { + Ok(()) +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn utimensat( + dirfd: BorrowedFd<'_>, + path: &CStr, + times: &Timestamps, + flags: AtFlags, +) -> io::Result<()> { + // 32-bit gnu version: libc has `utimensat` but it is not y2038 safe by + // default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_utimensat) = __utimensat64.get() { + let libc_times: [LibcTimespec; 2] = [ + times.last_access.clone().into(), + times.last_modification.clone().into(), + ]; + + ret(libc_utimensat( + borrowed_fd(dirfd), + c_str(path), + libc_times.as_ptr(), + flags.bits(), + )) + } else { + 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( + target_os = "ios", + target_os = "macos", + all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ) + )))] + unsafe { + // Assert that `Timestamps` has the expected layout. + let _ = core::mem::transmute::(times.clone()); + + ret(c::utimensat( + borrowed_fd(dirfd), + c_str(path), + as_ptr(times).cast(), + flags.bits(), + )) + } + + // `utimensat` was introduced in macOS 10.13. + #[cfg(any(target_os = "ios", target_os = "macos"))] + unsafe { + // ABI details + weak! { + fn utimensat( + c::c_int, + *const c::c_char, + *const c::timespec, + c::c_int + ) -> c::c_int + } + extern "C" { + fn setattrlist( + path: *const c::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() { + // Assert that `Timestamps` has the expected layout. + let _ = core::mem::transmute::(times.clone()); + + return ret(have_utimensat( + borrowed_fd(dirfd), + c_str(path), + as_ptr(times).cast(), + flags.bits(), + )); + } + + // `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; + } + + let (attrbuf_size, times, attrs) = times_to_attrlist(times); + + 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( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +unsafe 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, + }, + c::timespec { + tv_sec: times + .last_modification + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + tv_nsec: times.last_modification.tv_nsec, + }, + ]; + ret(c::utimensat( + borrowed_fd(dirfd), + c_str(path), + old_times.as_ptr(), + flags.bits(), + )) +} + +#[cfg(not(any( + target_os = "android", + target_os = "linux", + target_os = "redox", + target_os = "wasi", +)))] +pub(crate) fn chmodat(dirfd: BorrowedFd<'_>, path: &CStr, mode: Mode) -> io::Result<()> { + unsafe { ret(c::fchmodat(borrowed_fd(dirfd), c_str(path), mode.bits(), 0)) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn chmodat(dirfd: BorrowedFd<'_>, path: &CStr, mode: Mode) -> io::Result<()> { + // Linux's `fchmodat` does not have a flags argument. + unsafe { + // Pass `mode` as a `c_uint` even if `mode_t` is narrower, since + // `libc_openat` is declared as a variadic function and narrower + // arguments are promoted. + syscall_ret(c::syscall( + c::SYS_fchmodat, + borrowed_fd(dirfd), + c_str(path), + c::c_uint::from(mode.bits()), + )) + } +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +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 c::c_char, + flags: c::c_int + ) via SYS_fclonefileat -> c::c_int + } + + unsafe { ret(fclonefileat(srcfd, dst_dirfd, c_str(dst), flags.bits())) } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn chownat( + dirfd: BorrowedFd<'_>, + path: &CStr, + owner: Option, + group: Option, + flags: AtFlags, +) -> io::Result<()> { + unsafe { + let (ow, gr) = crate::process::translate_fchown_args(owner, group); + ret(c::fchownat( + borrowed_fd(dirfd), + c_str(path), + ow, + gr, + flags.bits(), + )) + } +} + +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + 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(any(target_os = "android", target_os = "linux"))] +pub(crate) fn copy_file_range( + fd_in: BorrowedFd<'_>, + off_in: Option<&mut u64>, + fd_out: BorrowedFd<'_>, + off_out: Option<&mut u64>, + len: u64, +) -> io::Result { + assert_eq!(size_of::(), size_of::()); + + 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 len: usize = len.try_into().unwrap_or(usize::MAX); + let copied = unsafe { + syscall_ret_ssize_t(c::syscall( + c::SYS_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 as u64) +} + +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub(crate) fn fadvise(fd: BorrowedFd<'_>, offset: u64, len: u64, advice: Advice) -> io::Result<()> { + let offset = offset as i64; + let len = len as i64; + + // FreeBSD returns `EINVAL` on invalid offsets; emulate the POSIX behavior. + #[cfg(target_os = "freebsd")] + let offset = if (offset as i64) < 0 { + i64::MAX + } else { + offset + }; + + // FreeBSD returns `EINVAL` on overflow; emulate the POSIX behavior. + #[cfg(target_os = "freebsd")] + let len = if len > 0 && offset.checked_add(len).is_none() { + i64::MAX - offset + } else { + len + }; + + let err = unsafe { libc_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 { + unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETFL)).map(OFlags::from_bits_truncate) } +} + +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( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +pub(crate) fn fcntl_get_seals(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GET_SEALS)) + .map(|flags| SealFlags::from_bits_unchecked(flags)) + } +} + +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +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())) } +} + +pub(crate) fn seek(fd: BorrowedFd<'_>, pos: SeekFrom) -> io::Result { + let (whence, offset): (c::c_int, libc_off_t) = 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), + }; + let offset = unsafe { ret_off_t(libc_lseek(borrowed_fd(fd), offset, whence))? }; + Ok(offset as u64) +} + +pub(crate) fn tell(fd: BorrowedFd<'_>) -> io::Result { + let offset = unsafe { ret_off_t(libc_lseek(borrowed_fd(fd), 0, c::SEEK_CUR))? }; + Ok(offset as u64) +} + +#[cfg(not(any(target_os = "android", target_os = "linux", target_os = "wasi")))] +pub(crate) fn fchmod(fd: BorrowedFd<'_>, mode: Mode) -> io::Result<()> { + unsafe { ret(c::fchmod(borrowed_fd(fd), mode.bits())) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +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`. + unsafe { + syscall_ret(c::syscall( + c::SYS_fchmod, + borrowed_fd(fd), + c::c_uint::from(mode.bits()), + )) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option, group: Option) -> 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`. + unsafe { + let (ow, gr) = crate::process::translate_fchown_args(owner, group); + syscall_ret(c::syscall(c::SYS_fchown, borrowed_fd(fd), ow, gr)) + } +} + +#[cfg(not(any(target_os = "android", target_os = "linux", target_os = "wasi")))] +pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option, group: Option) -> io::Result<()> { + unsafe { + let (ow, gr) = crate::process::translate_fchown_args(owner, group); + ret(c::fchown(borrowed_fd(fd), ow, gr)) + } +} + +#[cfg(not(any(target_os = "solaris", 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)) } +} + +pub(crate) fn fstat(fd: BorrowedFd<'_>) -> io::Result { + // 32-bit and mips64 Linux: `struct stat64` is not y2038 compatible; use + // `statx`. + #[cfg(all( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), + ))] + { + match 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( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), + )))] + unsafe { + let mut stat = MaybeUninit::::uninit(); + ret(libc_fstat(borrowed_fd(fd), stat.as_mut_ptr()))?; + Ok(stat.assume_init()) + } +} + +#[cfg(all( + any(target_os = "android", target_os = "linux"), + any(target_pointer_width = "32", target_arch = "mips64"), +))] +fn fstat_old(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(libc_fstat(borrowed_fd(fd), result.as_mut_ptr()))?; + stat64_to_stat(result.assume_init()) + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub(crate) fn fstatfs(fd: BorrowedFd<'_>) -> io::Result { + let mut statfs = MaybeUninit::::uninit(); + unsafe { + ret(libc_fstatfs(borrowed_fd(fd), statfs.as_mut_ptr()))?; + Ok(statfs.assume_init()) + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub(crate) fn fstatvfs(fd: BorrowedFd<'_>) -> io::Result { + let mut statvfs = MaybeUninit::::uninit(); + unsafe { + ret(libc_fstatvfs(borrowed_fd(fd), statvfs.as_mut_ptr()))?; + Ok(libc_statvfs_to_statvfs(statvfs.assume_init())) + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi" +)))] +fn libc_statvfs_to_statvfs(from: libc_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, + f_fsid: from.f_fsid as u64, + f_flag: unsafe { StatVfsMountFlags::from_bits_unchecked(from.f_flag as u64) }, + f_namemax: from.f_namemax as u64, + } +} + +pub(crate) fn futimens(fd: BorrowedFd<'_>, times: &Timestamps) -> io::Result<()> { + // 32-bit gnu version: libc has `futimens` but it is not y2038 safe by default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_futimens) = __futimens64.get() { + let libc_times: [LibcTimespec; 2] = [ + times.last_access.clone().into(), + times.last_modification.clone().into(), + ]; + + ret(libc_futimens(borrowed_fd(fd), libc_times.as_ptr())) + } else { + 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( + target_os = "ios", + target_os = "macos", + all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ) + )))] + unsafe { + // Assert that `Timestamps` has the expected layout. + let _ = core::mem::transmute::(times.clone()); + + ret(c::futimens(borrowed_fd(fd), as_ptr(times).cast())) + } + + // `futimens` was introduced in macOS 10.13. + #[cfg(any(target_os = "ios", target_os = "macos"))] + unsafe { + // 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() { + // Assert that `Timestamps` has the expected layout. + let _ = core::mem::transmute::(times.clone()); + + 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( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +unsafe 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, + }, + c::timespec { + tv_sec: times + .last_modification + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + tv_nsec: times.last_modification.tv_nsec, + }, + ]; + + ret(c::futimens(borrowed_fd(fd), old_times.as_ptr())) +} + +#[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub(crate) fn fallocate( + fd: BorrowedFd<'_>, + mode: FallocateFlags, + offset: u64, + len: u64, +) -> io::Result<()> { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let len = len as i64; + + #[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] + unsafe { + ret(libc_fallocate(borrowed_fd(fd), mode.bits(), offset, len)) + } + + #[cfg(not(any(target_os = "android", target_os = "fuchsia", target_os = "linux")))] + { + assert!(mode.is_empty()); + let err = unsafe { libc_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(any(target_os = "ios", target_os = "macos"))] +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 { + 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( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", +)))] +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(libc_ftruncate(borrowed_fd(fd), length)) } +} + +#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] +pub(crate) fn memfd_create(path: &CStr, flags: MemfdFlags) -> io::Result { + #[cfg(target_os = "freebsd")] + weakcall! { + fn memfd_create( + name: *const c::c_char, + flags: c::c_uint + ) -> c::c_int + } + + #[cfg(any(target_os = "android", target_os = "linux"))] + weak_or_syscall! { + fn memfd_create( + name: *const c::c_char, + flags: c::c_uint + ) via SYS_memfd_create -> c::c_int + } + + unsafe { ret_owned_fd(memfd_create(c_str(path), flags.bits())) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn openat2( + dirfd: BorrowedFd<'_>, + path: &CStr, + oflags: OFlags, + mode: Mode, + resolve: ResolveFlags, +) -> io::Result { + let oflags: i32 = oflags.bits(); + let open_how = OpenHow { + oflag: u64::from(oflags as u32), + mode: u64::from(mode.bits()), + resolve: resolve.bits(), + }; + + unsafe { + syscall_ret_owned_fd(c::syscall( + SYS_OPENAT2, + borrowed_fd(dirfd), + c_str(path), + &open_how, + SIZEOF_OPEN_HOW, + )) + } +} +#[cfg(all( + target_pointer_width = "32", + any(target_os = "android", target_os = "linux"), +))] +const SYS_OPENAT2: i32 = 437; +#[cfg(all( + target_pointer_width = "64", + any(target_os = "android", target_os = "linux"), +))] +const SYS_OPENAT2: i64 = 437; + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[repr(C)] +#[derive(Debug)] +struct OpenHow { + oflag: u64, + mode: u64, + resolve: u64, +} +#[cfg(any(target_os = "android", target_os = "linux"))] +const SIZEOF_OPEN_HOW: usize = size_of::(); + +#[cfg(target_os = "linux")] +pub(crate) fn sendfile( + out_fd: BorrowedFd<'_>, + in_fd: BorrowedFd<'_>, + offset: Option<&mut u64>, + count: usize, +) -> io::Result { + unsafe { + let nsent = ret_ssize_t(c::sendfile64( + borrowed_fd(out_fd), + borrowed_fd(in_fd), + offset.map_or(null_mut(), crate::utils::as_mut_ptr).cast(), + count, + ))?; + Ok(nsent as usize) + } +} + +/// Convert from a Linux `statx` value to rustix's `Stat`. +#[cfg(all( + any(target_os = "android", target_os = "linux"), + target_pointer_width = "32", +))] +fn statx_to_stat(x: crate::fs::Statx) -> io::Result { + 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: x + .stx_atime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_atime_nsec: x.stx_atime.tv_nsec as _, + st_mtime: x + .stx_mtime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_mtime_nsec: x.stx_mtime.tv_nsec as _, + st_ctime: x + .stx_ctime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + 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( + any(target_os = "android", target_os = "linux"), + target_arch = "mips64", +))] +fn statx_to_stat(x: crate::fs::Statx) -> io::Result { + 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 = x + .stx_atime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?; + result.st_atime_nsec = x.stx_atime.tv_nsec as _; + result.st_mtime = x + .stx_mtime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?; + result.st_mtime_nsec = x.stx_mtime.tv_nsec as _; + result.st_ctime = x + .stx_ctime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?; + 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( + any(target_os = "android", target_os = "linux"), + target_pointer_width = "32", +))] +fn stat64_to_stat(s64: c::stat64) -> io::Result { + 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: s64.st_atime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_atime_nsec: s64 + .st_atime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_mtime: s64.st_mtime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_mtime_nsec: s64 + .st_mtime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_ctime: s64.st_ctime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + 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( + any(target_os = "android", target_os = "linux"), + target_arch = "mips64", +))] +fn stat64_to_stat(s64: c::stat64) -> io::Result { + 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 = s64.st_atime.try_into().map_err(|_| io::Errno::OVERFLOW)?; + result.st_atime_nsec = s64 + .st_atime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?; + result.st_mtime = s64.st_mtime.try_into().map_err(|_| io::Errno::OVERFLOW)?; + result.st_mtime_nsec = s64 + .st_mtime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?; + result.st_ctime = s64.st_ctime.try_into().map_err(|_| io::Errno::OVERFLOW)?; + 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(any(target_os = "android", target_os = "linux"))] +#[allow(non_upper_case_globals)] +mod sys { + use super::{c, BorrowedFd, Statx}; + + #[cfg(all(target_os = "android", target_arch = "arm"))] + const SYS_statx: c::c_long = 397; + #[cfg(all(target_os = "android", target_arch = "x86"))] + const SYS_statx: c::c_long = 383; + #[cfg(all(target_os = "android", target_arch = "aarch64"))] + const SYS_statx: c::c_long = 291; + #[cfg(all(target_os = "android", target_arch = "x86_64"))] + const SYS_statx: c::c_long = 332; + + weak_or_syscall! { + pub(super) fn statx( + pirfd: BorrowedFd<'_>, + path: *const c::c_char, + flags: c::c_int, + mask: c::c_uint, + buf: *mut Statx + ) via SYS_statx -> c::c_int + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[allow(non_upper_case_globals)] +pub(crate) fn statx( + dirfd: BorrowedFd<'_>, + path: &CStr, + flags: AtFlags, + mask: StatxFlags, +) -> io::Result { + // 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/20200505095915.11275-7-mszeredi@redhat.com/ + #[cfg(not(any(target_os = "android", target_env = "musl")))] + const STATX__RESERVED: u32 = libc::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::::uninit(); + unsafe { + ret(sys::statx( + dirfd, + c_str(path), + flags.bits(), + mask.bits(), + statx_buf.as_mut_ptr(), + ))?; + Ok(statx_buf.assume_init()) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[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(any(target_os = "ios", target_os = "macos"))] +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, + flags.bits(), + )) +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub(crate) fn copyfile_state_alloc() -> io::Result { + 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(any(target_os = "ios", target_os = "macos"))] +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(any(target_os = "ios", target_os = "macos"))] +const COPYFILE_STATE_COPIED: u32 = 8; + +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub(crate) unsafe fn copyfile_state_get_copied(state: copyfile_state_t) -> io::Result { + let mut copied = MaybeUninit::::uninit(); + copyfile_state_get(state, COPYFILE_STATE_COPIED, copied.as_mut_ptr().cast())?; + Ok(copied.assume_init()) +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +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(any(target_os = "ios", target_os = "macos"))] +pub(crate) fn getpath(fd: BorrowedFd<'_>) -> io::Result { + // 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 = alloc::vec![0; c::PATH_MAX as usize]; + + // From the [macOS `fcntl` man page]: + // `F_GETPATH` - Get the path of the file descriptor `Fildes`. The argument + // must be a buffer of size `MAXPATHLEN` or greater. + // + // [macOS `fcntl` man 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); + + // TODO: On Rust 1.56, we can use `shrink_to` here. + //buf.shrink_to(l + 1); + buf.shrink_to_fit(); + + Ok(CString::new(buf).unwrap()) +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub(crate) fn fcntl_rdadvise(fd: BorrowedFd<'_>, offset: u64, len: u64) -> io::Result<()> { + // From the [macOS `fcntl` man 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` man 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(any(target_os = "ios", target_os = "macos"))] +pub(crate) fn fcntl_fullfsync(fd: BorrowedFd<'_>) -> io::Result<()> { + unsafe { ret(c::fcntl(borrowed_fd(fd), c::F_FULLFSYNC)) } +} + +/// Convert `times` from a `futimens`/`utimensat` argument into `setattrlist` +/// arguments. +#[cfg(any(target_os = "ios", target_os = "macos"))] +fn times_to_attrlist(times: &Timestamps) -> (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 || times.last_modification.tv_nsec == c::UTIME_NOW + { + 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 { + times.last_access = now; + } + if times.last_modification.tv_nsec == c::UTIME_NOW { + times.last_modification = now; + } + } + + // 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 { + attrs.commonattr |= ATTR_CMN_MODTIME; + return_times[times_index] = times.last_modification; + times_index += 1; + times_size += size_of::(); + } + if times.last_access.tv_nsec != c::UTIME_OMIT { + attrs.commonattr |= ATTR_CMN_ACCTIME; + return_times[times_index] = times.last_access; + times_size += size_of::(); + } + + (times_size, return_times, attrs) +} + +/// Support type for `Attrlist`. +#[cfg(any(target_os = "ios", target_os = "macos"))] +type Attrgroup = u32; + +/// Attribute list for use with `setattrlist`. +#[cfg(any(target_os = "ios", target_os = "macos"))] +#[repr(C)] +struct Attrlist { + bitmapcount: u16, + reserved: u16, + commonattr: Attrgroup, + volattr: Attrgroup, + dirattr: Attrgroup, + fileattr: Attrgroup, + forkattr: Attrgroup, +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +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(), + )) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/fs/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1207 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `*_OK` constants for use with [`accessat`]. + /// + /// [`accessat`]: fn.accessat.html + pub struct Access: c::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; + } +} + +#[cfg(not(target_os = "redox"))] +bitflags! { + /// `AT_*` constants for use with [`openat`], [`statat`], and other `*at` + /// functions. + /// + /// [`openat`]: crate::fs::openat + /// [`statat`]: crate::fs::statat + pub struct AtFlags: c::c_int { + /// `AT_REMOVEDIR` + const REMOVEDIR = c::AT_REMOVEDIR; + + /// `AT_SYMLINK_FOLLOW` + const SYMLINK_FOLLOW = c::AT_SYMLINK_FOLLOW; + + /// `AT_SYMLINK_NOFOLLOW` + const SYMLINK_NOFOLLOW = c::AT_SYMLINK_NOFOLLOW; + + /// `AT_EMPTY_PATH` + #[cfg(any( + target_os = "android", + target_os = "fuchsia", + target_os = "linux", + ))] + const EMPTY_PATH = c::AT_EMPTY_PATH; + + /// `AT_EACCESS` + #[cfg(not(any(target_os = "emscripten", target_os = "android")))] + const EACCESS = c::AT_EACCESS; + + /// `AT_STATX_SYNC_AS_STAT` + #[cfg(all(target_os = "linux", target_env = "gnu"))] + const STATX_SYNC_AS_STAT = c::AT_STATX_SYNC_AS_STAT; + + /// `AT_STATX_FORCE_SYNC` + #[cfg(all(target_os = "linux", target_env = "gnu"))] + const STATX_FORCE_SYNC = c::AT_STATX_FORCE_SYNC; + + /// `AT_STATX_DONT_SYNC` + #[cfg(all(target_os = "linux", target_env = "gnu"))] + const STATX_DONT_SYNC = c::AT_STATX_DONT_SYNC; + } +} + +bitflags! { + /// `S_I*` constants for use with [`openat`], [`chmodat`], and [`fchmod`]. + /// + /// [`openat`]: crate::fs::openat + /// [`chmodat`]: crate::fs::chmodat + /// [`fchmod`]: crate::fs::fchmod + pub struct Mode: RawMode { + /// `S_IRWXU` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const RWXU = c::S_IRWXU as RawMode; + + /// `S_IRUSR` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const RUSR = c::S_IRUSR as RawMode; + + /// `S_IWUSR` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const WUSR = c::S_IWUSR as RawMode; + + /// `S_IXUSR` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const XUSR = c::S_IXUSR as RawMode; + + /// `S_IRWXG` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const RWXG = c::S_IRWXG as RawMode; + + /// `S_IRGRP` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const RGRP = c::S_IRGRP as RawMode; + + /// `S_IWGRP` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const WGRP = c::S_IWGRP as RawMode; + + /// `S_IXGRP` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const XGRP = c::S_IXGRP as RawMode; + + /// `S_IRWXO` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const RWXO = c::S_IRWXO as RawMode; + + /// `S_IROTH` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const ROTH = c::S_IROTH as RawMode; + + /// `S_IWOTH` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const WOTH = c::S_IWOTH as RawMode; + + /// `S_IXOTH` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const XOTH = c::S_IXOTH as RawMode; + + /// `S_ISUID` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const SUID = c::S_ISUID as RawMode; + + /// `S_ISGID` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const SGID = c::S_ISGID as RawMode; + + /// `S_ISVTX` + #[cfg(not(target_os = "wasi"))] // WASI doesn't have Unix-style mode flags. + const SVTX = c::S_ISVTX as RawMode; + } +} + +impl Mode { + /// Construct a `Mode` from the mode bits of the `st_mode` field of + /// a `Stat`. + #[inline] + pub const fn from_raw_mode(st_mode: RawMode) -> Self { + Self::from_bits_truncate(st_mode) + } + + /// Construct an `st_mode` value from `Stat`. + #[inline] + pub const fn as_raw_mode(self) -> RawMode { + self.bits() + } +} + +bitflags! { + /// `O_*` constants for use with [`openat`]. + /// + /// [`openat`]: crate::fs::openat + pub struct OFlags: c::c_int { + /// `O_ACCMODE` + const ACCMODE = c::O_ACCMODE; + + /// Similar to `ACCMODE`, but just includes the read/write flags, and + /// no other flags. + /// + /// Some implementations include `O_PATH` in `O_ACCMODE`, when + /// sometimes we really just want the read/write bits. Caution is + /// indicated, as the presence of `O_PATH` may mean that the read/write + /// bits don't have their usual meaning. + const RWMODE = c::O_RDONLY | c::O_WRONLY | c::O_RDWR; + + /// `O_APPEND` + const APPEND = c::O_APPEND; + + /// `O_CREAT` + #[doc(alias = "CREAT")] + const CREATE = c::O_CREAT; + + /// `O_DIRECTORY` + const DIRECTORY = c::O_DIRECTORY; + + /// `O_DSYNC` + #[cfg(not(any(target_os = "dragonfly", target_os = "freebsd", target_os = "redox")))] + const DSYNC = c::O_DSYNC; + + /// `O_EXCL` + const EXCL = c::O_EXCL; + + /// `O_FSYNC` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + all(target_os = "linux", not(target_env = "musl")), + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + const FSYNC = c::O_FSYNC; + + /// `O_NOFOLLOW` + const NOFOLLOW = c::O_NOFOLLOW; + + /// `O_NONBLOCK` + const NONBLOCK = c::O_NONBLOCK; + + /// `O_RDONLY` + const RDONLY = c::O_RDONLY; + + /// `O_WRONLY` + const WRONLY = c::O_WRONLY; + + /// `O_RDWR` + const RDWR = c::O_RDWR; + + /// `O_NOCTTY` + #[cfg(not(target_os = "redox"))] + const NOCTTY = c::O_NOCTTY; + + /// `O_RSYNC` + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + ))] + const RSYNC = c::O_RSYNC; + + /// `O_SYNC` + #[cfg(not(target_os = "redox"))] + const SYNC = c::O_SYNC; + + /// `O_TRUNC` + const TRUNC = c::O_TRUNC; + + /// `O_PATH` + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "linux", + target_os = "redox", + ))] + const PATH = c::O_PATH; + + /// `O_CLOEXEC` + const CLOEXEC = c::O_CLOEXEC; + + /// `O_TMPFILE` + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "linux", + ))] + const TMPFILE = c::O_TMPFILE; + + /// `O_NOATIME` + #[cfg(any( + target_os = "android", + target_os = "fuchsia", + target_os = "linux", + ))] + const NOATIME = c::O_NOATIME; + + /// `O_DIRECT` + #[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", + target_os = "netbsd", + ))] + const DIRECT = c::O_DIRECT; + } +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +bitflags! { + /// `CLONE_*` constants for use with [`fclonefileat`]. + /// + /// [`fclonefileat`]: crate::fs::fclonefileat + pub struct CloneFlags: c::c_int { + /// `CLONE_NOFOLLOW` + const NOFOLLOW = 1; + + /// `CLONE_NOOWNERCOPY` + const NOOWNERCOPY = 2; + } +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +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(any(target_os = "ios", target_os = "macos"))] +bitflags! { + /// `COPYFILE_*` constants. + pub struct CopyfileFlags: c::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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `RESOLVE_*` constants for use with [`openat2`]. + /// + /// [`openat2`]: crate::fs::openat2 + #[derive(Default)] + 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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `RENAME_*` constants for use with [`renameat_with`]. + /// + /// [`renameat_with`]: crate::fs::renameat_with + pub struct RenameFlags: c::c_uint { + /// `RENAME_EXCHANGE` + const EXCHANGE = c::RENAME_EXCHANGE as _; + + /// `RENAME_NOREPLACE` + const NOREPLACE = c::RENAME_NOREPLACE as _; + + /// `RENAME_WHITEOUT` + const WHITEOUT = c::RENAME_WHITEOUT as _; + } +} + +/// `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`. + 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 `Stat`. + 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( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris" + )))] + 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( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +#[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(target_os = "android", target_os = "freebsd", target_os = "linux"))] +bitflags! { + /// `MFD_*` constants for use with [`memfd_create`]. + /// + /// [`memfd_create`]: crate::fs::memfd_create + pub struct MemfdFlags: c::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_HUGE_64KB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_64KB = c::MFD_HUGE_64KB; + /// `MFD_HUGE_512JB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_512KB = c::MFD_HUGE_512KB; + /// `MFD_HUGE_1MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_1MB = c::MFD_HUGE_1MB; + /// `MFD_HUGE_2MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_2MB = c::MFD_HUGE_2MB; + /// `MFD_HUGE_8MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_8MB = c::MFD_HUGE_8MB; + /// `MFD_HUGE_16MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_16MB = c::MFD_HUGE_16MB; + /// `MFD_HUGE_32MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_32MB = c::MFD_HUGE_32MB; + /// `MFD_HUGE_256MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_256MB = c::MFD_HUGE_256MB; + /// `MFD_HUGE_512MB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_512MB = c::MFD_HUGE_512MB; + /// `MFD_HUGE_1GB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_1GB = c::MFD_HUGE_1GB; + /// `MFD_HUGE_2GB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_2GB = c::MFD_HUGE_2GB; + /// `MFD_HUGE_16GB` + #[cfg(any(target_os = "android", target_os = "linux"))] + const HUGE_16GB = c::MFD_HUGE_16GB; + } +} + +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +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 + pub struct SealFlags: i32 { + /// `F_SEAL_SEAL`. + const SEAL = c::F_SEAL_SEAL; + /// `F_SEAL_SHRINK`. + const SHRINK = c::F_SEAL_SHRINK; + /// `F_SEAL_GROW`. + const GROW = c::F_SEAL_GROW; + /// `F_SEAL_WRITE`. + const WRITE = c::F_SEAL_WRITE; + /// `F_SEAL_FUTURE_WRITE` (since Linux 5.1) + #[cfg(any(target_os = "android", target_os = "linux"))] + const FUTURE_WRITE = c::F_SEAL_FUTURE_WRITE; + } +} + +#[cfg(all(target_os = "linux", target_env = "gnu"))] +bitflags! { + /// `STATX_*` constants for use with [`statx`]. + /// + /// [`statx`]: crate::fs::statx + 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_ALL` + const ALL = c::STATX_ALL; + } +} + +#[cfg(any( + target_os = "android", + all(target_os = "linux", not(target_env = "gnu")), +))] +bitflags! { + /// `STATX_*` constants for use with [`statx`]. + /// + /// [`statx`]: crate::fs::statx + pub struct StatxFlags: u32 { + /// `STATX_TYPE` + const TYPE = 0x0001; + + /// `STATX_MODE` + const MODE = 0x0002; + + /// `STATX_NLINK` + const NLINK = 0x0004; + + /// `STATX_UID` + const UID = 0x0008; + + /// `STATX_GID` + const GID = 0x0010; + + /// `STATX_ATIME` + const ATIME = 0x0020; + + /// `STATX_MTIME` + const MTIME = 0x0040; + + /// `STATX_CTIME` + const CTIME = 0x0080; + + /// `STATX_INO` + const INO = 0x0100; + + /// `STATX_SIZE` + const SIZE = 0x0200; + + /// `STATX_BLOCKS` + const BLOCKS = 0x0400; + + /// `STATX_BASIC_STATS` + const BASIC_STATS = 0x07ff; + + /// `STATX_BTIME` + const BTIME = 0x800; + + /// `STATX_MNT_ID` (since Linux 5.8) + const MNT_ID = 0x1000; + + /// `STATX_ALL` + const ALL = 0xfff; + } +} + +#[cfg(not(any( + target_os = "aix", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +bitflags! { + /// `FALLOC_FL_*` constants for use with [`fallocate`]. + /// + /// [`fallocate`]: crate::fs::fallocate + pub struct FallocateFlags: i32 { + /// `FALLOC_FL_KEEP_SIZE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + const KEEP_SIZE = c::FALLOC_FL_KEEP_SIZE; + /// `FALLOC_FL_PUNCH_HOLE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + const PUNCH_HOLE = c::FALLOC_FL_PUNCH_HOLE; + /// `FALLOC_FL_NO_HIDE_STALE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "linux", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "wasi", + )))] + const NO_HIDE_STALE = c::FALLOC_FL_NO_HIDE_STALE; + /// `FALLOC_FL_COLLAPSE_RANGE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "emscripten", + target_os = "wasi", + )))] + const COLLAPSE_RANGE = c::FALLOC_FL_COLLAPSE_RANGE; + /// `FALLOC_FL_ZERO_RANGE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "emscripten", + target_os = "wasi", + )))] + const ZERO_RANGE = c::FALLOC_FL_ZERO_RANGE; + /// `FALLOC_FL_INSERT_RANGE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "emscripten", + target_os = "wasi", + )))] + const INSERT_RANGE = c::FALLOC_FL_INSERT_RANGE; + /// `FALLOC_FL_UNSHARE_RANGE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "emscripten", + target_os = "wasi", + )))] + const UNSHARE_RANGE = c::FALLOC_FL_UNSHARE_RANGE; + } +} + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +bitflags! { + /// `ST_*` constants for use with [`StatVfs`]. + pub struct StatVfsMountFlags: u64 { + /// `ST_MANDLOCK` + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const MANDLOCK = libc::ST_MANDLOCK as u64; + + /// `ST_NOATIME` + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const NOATIME = libc::ST_NOATIME as u64; + + /// `ST_NODEV` + #[cfg(any(target_os = "aix", target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const NODEV = libc::ST_NODEV as u64; + + /// `ST_NODIRATIME` + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const NODIRATIME = libc::ST_NODIRATIME as u64; + + /// `ST_NOEXEC` + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const NOEXEC = libc::ST_NOEXEC as u64; + + /// `ST_NOSUID` + const NOSUID = libc::ST_NOSUID as u64; + + /// `ST_RDONLY` + const RDONLY = libc::ST_RDONLY as u64; + + /// `ST_RELATIME` + #[cfg(any(target_os = "android", all(target_os = "linux", target_env = "gnu")))] + const RELATIME = libc::ST_RELATIME as u64; + + /// `ST_SYNCHRONOUS` + #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "fuchsia", target_os = "linux"))] + const SYNCHRONOUS = libc::ST_SYNCHRONOUS as u64; + } +} + +/// `LOCK_*` constants for use with [`flock`] +/// +/// [`flock`]: crate::fs::flock +#[cfg(not(any(target_os = "solaris", target_os = "wasi")))] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[repr(i32)] +pub enum FlockOperation { + /// `LOCK_SH` + LockShared = c::LOCK_SH, + /// `LOCK_EX` + LockExclusive = c::LOCK_EX, + /// `LOCK_UN` + Unlock = c::LOCK_UN, + /// `LOCK_SH | LOCK_NB` + NonBlockingLockShared = c::LOCK_SH | c::LOCK_NB, + /// `LOCK_EX | LOCK_NB` + NonBlockingLockExclusive = c::LOCK_EX | c::LOCK_NB, + /// `LOCK_UN | LOCK_NB` + NonBlockingUnlock = c::LOCK_UN | c::LOCK_NB, +} + +/// `struct stat` for use with [`statat`] and [`fstat`]. +/// +/// [`statat`]: crate::fs::statat +/// [`fstat`]: crate::fs::fstat +#[cfg(not(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +)))] +pub type Stat = c::stat; + +/// `struct stat` for use with [`statat`] and [`fstat`]. +/// +/// [`statat`]: crate::fs::statat +/// [`fstat`]: crate::fs::fstat +#[cfg(any( + all( + any(target_os = "android", target_os = "linux"), + target_pointer_width = "64", + ), + 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( + any(target_os = "android", target_os = "linux"), + target_pointer_width = "32", +))] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +#[allow(missing_docs)] +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: u64, + pub st_atime_nsec: u32, + pub st_mtime: u64, + pub st_mtime_nsec: u32, + pub st_ctime: u64, + pub st_ctime_nsec: u32, + pub st_ino: u64, +} + +/// `struct statfs` for use with [`statfs`] and [`fstatfs`]. +/// +/// [`statfs`]: crate::fs::statfs +/// [`fstatfs`]: crate::fs::fstatfs +#[cfg(not(any( + target_os = "android", + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "linux", + target_os = "l4re", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + 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(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +pub type StatFs = c::statfs64; + +/// `struct statvfs` for use with [`statvfs`] and [`fstatvfs`]. +/// +/// [`statvfs`]: crate::fs::statvfs +/// [`fstatvfs`]: crate::fs::fstatvfs +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + 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, +} + +/// `struct statx` for use with [`statx`]. +/// +/// [`statx`]: crate::fs::statx +#[cfg(all(target_os = "linux", target_env = "gnu"))] +// Use the glibc `struct statx`. +pub type Statx = c::statx; + +/// `struct statx_timestamp` for use with [`Statx`]. +#[cfg(all(target_os = "linux", target_env = "gnu"))] +// Use the glibc `struct statx_timestamp`. +pub type StatxTimestamp = c::statx; + +/// `struct statx` for use with [`statx`]. +/// +/// [`statx`]: crate::fs::statx +// Non-glibc ABIs don't currently declare a `struct statx`, so we declare it +// ourselves. +#[cfg(any( + target_os = "android", + all(target_os = "linux", not(target_env = "gnu")), +))] +#[repr(C)] +#[allow(missing_docs)] +pub struct Statx { + pub stx_mask: u32, + pub stx_blksize: u32, + pub stx_attributes: u64, + pub stx_nlink: u32, + pub stx_uid: u32, + pub stx_gid: u32, + pub stx_mode: u16, + __statx_pad1: [u16; 1], + pub stx_ino: u64, + pub stx_size: u64, + pub stx_blocks: u64, + pub stx_attributes_mask: u64, + pub stx_atime: 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, + __statx_pad2: u64, + __statx_pad3: [u64; 12], +} + +/// `struct statx_timestamp` for use with [`Statx`]. +// Non-glibc ABIs don't currently declare a `struct statx_timestamp`, so we +// declare it ourselves. +#[cfg(any( + target_os = "android", + all(target_os = "linux", not(target_env = "gnu")), +))] +#[repr(C)] +#[allow(missing_docs)] +pub struct StatxTimestamp { + pub tv_sec: i64, + pub tv_nsec: u32, + pub __statx_timestamp_pad1: [i32; 1], +} + +/// `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 = c::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 = c::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, even though `__fsword_t` is `u64`. +#[cfg(all(target_os = "linux", target_arch = "s390x"))] +pub type FsWord = u32; + +#[cfg(not(target_os = "redox"))] +pub use c::{UTIME_NOW, UTIME_OMIT}; + +/// `PROC_SUPER_MAGIC`—The magic number for the procfs filesystem. +#[cfg(all( + any(target_os = "android", target_os = "linux"), + not(target_env = "musl"), +))] +pub const PROC_SUPER_MAGIC: FsWord = c::PROC_SUPER_MAGIC as FsWord; + +/// `NFS_SUPER_MAGIC`—The magic number for the NFS filesystem. +#[cfg(all( + any(target_os = "android", target_os = "linux"), + not(target_env = "musl"), +))] +pub const NFS_SUPER_MAGIC: FsWord = c::NFS_SUPER_MAGIC as FsWord; + +/// `PROC_SUPER_MAGIC`—The magic number for the procfs filesystem. +#[cfg(all(any(target_os = "android", target_os = "linux"), target_env = "musl"))] +pub const PROC_SUPER_MAGIC: FsWord = 0x0000_9fa0; + +/// `NFS_SUPER_MAGIC`—The magic number for the NFS filesystem. +#[cfg(all(any(target_os = "android", target_os = "linux"), target_env = "musl"))] +pub const NFS_SUPER_MAGIC: FsWord = 0x0000_6969; + +/// `copyfile_state_t`—State for use with [`fcopyfile`]. +/// +/// [`fcopyfile`]: crate::fs::fcopyfile +#[cfg(any(target_os = "ios", target_os = "macos"))] +#[allow(non_camel_case_types)] +#[repr(transparent)] +#[derive(Copy, Clone)] +pub struct copyfile_state_t(pub(crate) *mut c::c_void); + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `MS_*` constants for use with [`mount`][crate::fs::mount]. + pub struct MountFlags: c::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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `MS_*` constants for use with [`change_mount`][crate::fs::mount::change_mount]. + pub struct MountPropagationFlags: c::c_ulong { + /// `MS_SHARED` + const SHARED = c::MS_SHARED; + /// `MS_PRIVATE` + const PRIVATE = c::MS_PRIVATE; + /// `MS_SLAVE` + const SLAVE = c::MS_SLAVE; + /// `MS_UNBINDABLE` + const UNBINDABLE = c::MS_UNBINDABLE; + /// `MS_REC` + const REC = c::MS_REC; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + pub(crate) struct InternalMountFlags: c::c_ulong { + const REMOUNT = c::MS_REMOUNT; + const MOVE = c::MS_MOVE; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) struct MountFlagsArg(pub(crate) c::c_ulong); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/epoll.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/epoll.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/epoll.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/epoll.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,422 @@ +//! epoll support. +//! +//! This is an experiment, and it isn't yet clear whether epoll is the right +//! level of abstraction at which to introduce safety. But it works fairly well +//! in simple examples 🙂. +//! +//! # Examples +//! +//! ```rust,no_run +//! # #![cfg_attr(io_lifetimes_use_std, feature(io_safety))] +//! # #[cfg(feature = "net")] +//! # fn main() -> std::io::Result<()> { +//! use io_lifetimes::AsFd; +//! use rustix::io::epoll::{self, Epoll}; +//! use rustix::io::{ioctl_fionbio, read, write}; +//! use rustix::net::{ +//! accept, bind_v4, listen, socket, AddressFamily, Ipv4Addr, Protocol, SocketAddrV4, +//! SocketType, +//! }; +//! use std::os::unix::io::AsRawFd; +//! +//! // Create a socket and listen on it. +//! let listen_sock = socket(AddressFamily::INET, SocketType::STREAM, Protocol::default())?; +//! bind_v4(&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::new(epoll::CreateFlags::CLOEXEC, epoll::Owning::new())?; +//! +//! // Remember the socket raw fd, which we use for comparisons only. +//! let raw_listen_sock = listen_sock.as_fd().as_raw_fd(); +//! +//! // Register the socket with the epoll object. +//! epoll.add(listen_sock, epoll::EventFlags::IN)?; +//! +//! // Process events. +//! let mut event_list = epoll::EventVec::with_capacity(4); +//! loop { +//! epoll.wait(&mut event_list, -1)?; +//! for (_event_flags, target) in &event_list { +//! if target.as_raw_fd() == raw_listen_sock { +//! // 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(&*target)?; +//! ioctl_fionbio(&conn_sock, true)?; +//! epoll.add(conn_sock, epoll::EventFlags::OUT | epoll::EventFlags::ET)?; +//! } else { +//! // Write a message to the stream and then unregister it. +//! write(&*target, b"hello\n")?; +//! let _ = epoll.del(target)?; +//! } +//! } +//! } +//! # } +//! # #[cfg(not(feature = "net"))] +//! # fn main() {} +//! ``` + +use super::super::c; +use super::super::conv::{ret, ret_owned_fd, ret_u32}; +use crate::fd::{AsFd, AsRawFd, BorrowedFd, OwnedFd, RawFd}; +#[cfg(not(feature = "rustc-dep-of-std"))] +use crate::fd::{FromRawFd, IntoRawFd}; +use crate::io; +use alloc::vec::Vec; +use bitflags::bitflags; +use core::convert::TryInto; +use core::marker::PhantomData; +use core::ptr::{null, null_mut}; + +#[doc(inline)] +pub use crate::io::context::*; + +bitflags! { + /// `EPOLL_*` for use with [`Epoll::new`]. + pub struct CreateFlags: c::c_int { + /// `EPOLL_CLOEXEC` + const CLOEXEC = c::EPOLL_CLOEXEC; + } +} + +bitflags! { + /// `EPOLL*` for use with [`Epoll::add`]. + #[derive(Default)] + pub struct EventFlags: u32 { + /// `EPOLLIN` + const IN = c::EPOLLIN as u32; + + /// `EPOLLOUT` + const OUT = c::EPOLLOUT as u32; + + /// `EPOLLPRI` + const PRI = c::EPOLLPRI as u32; + + /// `EPOLLERR` + const ERR = c::EPOLLERR as u32; + + /// `EPOLLHUP` + const HUP = c::EPOLLHUP as u32; + + /// `EPOLLET` + const ET = c::EPOLLET as u32; + + /// `EPOLLONESHOT` + const ONESHOT = c::EPOLLONESHOT as u32; + + /// `EPOLLWAKEUP` + const WAKEUP = c::EPOLLWAKEUP as u32; + + /// `EPOLLEXCLUSIVE` + #[cfg(not(target_os = "android"))] + const EXCLUSIVE = c::EPOLLEXCLUSIVE as u32; + } +} + +/// An "epoll", an interface to an OS object allowing one to repeatedly wait +/// for events from a set of file descriptors efficiently. +pub struct Epoll { + epoll_fd: OwnedFd, + context: Context, +} + +impl Epoll { + /// `epoll_create1(flags)`—Creates a new `Epoll`. + /// + /// Use the [`CreateFlags::CLOEXEC`] flag to prevent the resulting file + /// descriptor from being implicitly passed across `exec` boundaries. + #[inline] + #[doc(alias = "epoll_create1")] + pub fn new(flags: CreateFlags, context: Context) -> io::Result { + // Safety: We're calling `epoll_create1` via FFI and we know how it + // behaves. + unsafe { + Ok(Self { + epoll_fd: ret_owned_fd(c::epoll_create1(flags.bits()))?, + context, + }) + } + } + + /// `epoll_ctl(self, EPOLL_CTL_ADD, data, event)`—Adds an element to an + /// `Epoll`. + /// + /// This registers interest in any of the events set in `events` occurring + /// on the file descriptor associated with `data`. + #[doc(alias = "epoll_ctl")] + pub fn add( + &self, + data: Context::Data, + event_flags: EventFlags, + ) -> io::Result> { + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + let target = self.context.acquire(data); + let raw_fd = target.as_fd().as_raw_fd(); + let encoded = self.context.encode(target); + ret(c::epoll_ctl( + self.epoll_fd.as_fd().as_raw_fd(), + c::EPOLL_CTL_ADD, + raw_fd, + &mut c::epoll_event { + events: event_flags.bits(), + r#u64: encoded, + }, + ))?; + Ok(self.context.decode(encoded)) + } + } + + /// `epoll_ctl(self, EPOLL_CTL_MOD, target, event)`—Modifies an element in + /// this `Epoll`. + /// + /// This sets the events of interest with `target` to `events`. + #[doc(alias = "epoll_ctl")] + pub fn mod_( + &self, + target: Ref<'_, Context::Target>, + event_flags: EventFlags, + ) -> io::Result<()> { + let raw_fd = target.as_fd().as_raw_fd(); + let encoded = self.context.encode(target); + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + ret(c::epoll_ctl( + self.epoll_fd.as_fd().as_raw_fd(), + c::EPOLL_CTL_MOD, + raw_fd, + &mut c::epoll_event { + events: event_flags.bits(), + r#u64: encoded, + }, + )) + } + } + + /// `epoll_ctl(self, EPOLL_CTL_DEL, target, NULL)`—Removes an element in + /// this `Epoll`. + /// + /// This also returns the owning `Data`. + #[doc(alias = "epoll_ctl")] + pub fn del(&self, target: Ref<'_, Context::Target>) -> io::Result { + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + let raw_fd = target.as_fd().as_raw_fd(); + ret(c::epoll_ctl( + self.epoll_fd.as_fd().as_raw_fd(), + c::EPOLL_CTL_DEL, + raw_fd, + null_mut(), + ))?; + } + Ok(self.context.release(target)) + } + + /// `epoll_wait(self, events, timeout)`—Waits for registered events of + /// interest. + /// + /// For each event of interest, an element is written to `events`. On + /// success, this returns the number of written elements. + #[doc(alias = "epoll_wait")] + pub fn wait<'context>( + &'context self, + event_list: &mut EventVec<'context, Context>, + timeout: c::c_int, + ) -> io::Result<()> { + // Safety: We're calling `epoll_wait` via FFI and we know how it + // behaves. + unsafe { + event_list.events.set_len(0); + let nfds = ret_u32(c::epoll_wait( + self.epoll_fd.as_fd().as_raw_fd(), + event_list.events.as_mut_ptr().cast::(), + event_list.events.capacity().try_into().unwrap_or(i32::MAX), + timeout, + ))?; + event_list.events.set_len(nfds as usize); + event_list.context = &self.context; + } + + Ok(()) + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> AsRawFd for Epoll> { + fn as_raw_fd(&self) -> RawFd { + self.epoll_fd.as_raw_fd() + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> IntoRawFd for Epoll> { + fn into_raw_fd(self) -> RawFd { + self.epoll_fd.into_raw_fd() + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> FromRawFd for Epoll> { + unsafe fn from_raw_fd(fd: RawFd) -> Self { + Self { + epoll_fd: OwnedFd::from_raw_fd(fd), + context: Owning::new(), + } + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> AsFd for Epoll> { + fn as_fd(&self) -> BorrowedFd<'_> { + self.epoll_fd.as_fd() + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> From>> + for OwnedFd +{ + fn from(epoll: Epoll>) -> Self { + epoll.epoll_fd + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> From + for Epoll> +{ + fn from(fd: OwnedFd) -> Self { + Self { + epoll_fd: fd, + context: Owning::new(), + } + } +} + +/// An iterator over the `Event`s in an `EventVec`. +pub struct Iter<'context, Context: self::Context> { + iter: core::slice::Iter<'context, Event>, + context: *const Context, + _phantom: PhantomData<&'context Context>, +} + +impl<'context, Context: self::Context> Iterator for Iter<'context, Context> { + type Item = (EventFlags, Ref<'context, Context::Target>); + + fn next(&mut self) -> Option { + // Safety: `self.context` is guaranteed to be valid because we hold + // `'context` for it. And we know this event is associated with this + // context because `wait` sets both. + self.iter.next().map(|event| { + (event.event_flags, unsafe { + (*self.context).decode(event.encoded) + }) + }) + } +} + +/// A record of an event that occurred. +#[repr(C)] +#[cfg_attr( + any( + all( + target_arch = "x86", + not(target_env = "musl"), + not(target_os = "android"), + ), + target_arch = "x86_64", + ), + repr(packed) +)] +struct Event { + // Match the layout of `c::epoll_event`. We just use a `u64` instead of + // the full union; `Context` implementations will simply need to deal with + // casting the value into and out of the `u64` themselves. + event_flags: EventFlags, + encoded: u64, +} + +/// A vector of `Event`s, plus context for interpreting them. +pub struct EventVec<'context, Context: self::Context> { + events: Vec, + context: *const Context, + _phantom: PhantomData<&'context Context>, +} + +impl<'context, Context: self::Context> EventVec<'context, Context> { + /// Constructs an `EventVec` with memory for `capacity` `Event`s. + #[inline] + pub fn with_capacity(capacity: usize) -> Self { + Self { + events: Vec::with_capacity(capacity), + context: null(), + _phantom: PhantomData, + } + } + + /// Returns the current `Event` capacity of this `EventVec`. + #[inline] + pub fn capacity(&self) -> usize { + self.events.capacity() + } + + /// Reserves enough memory for at least `additional` more `Event`s. + #[inline] + pub fn reserve(&mut self, additional: usize) { + self.events.reserve(additional); + } + + /// Reserves enough memory for exactly `additional` more `Event`s. + #[inline] + pub fn reserve_exact(&mut self, additional: usize) { + self.events.reserve_exact(additional); + } + + /// Clears all the `Events` out of this `EventVec`. + #[inline] + pub fn clear(&mut self) { + self.events.clear(); + } + + /// Shrinks the capacity of this `EventVec` as much as possible. + #[inline] + pub fn shrink_to_fit(&mut self) { + self.events.shrink_to_fit(); + } + + /// Returns an iterator over the `Event`s in this `EventVec`. + #[inline] + pub fn iter(&self) -> Iter<'_, Context> { + Iter { + iter: self.events.iter(), + context: self.context, + _phantom: PhantomData, + } + } + + /// Returns the number of `Event`s logically contained in this `EventVec`. + #[inline] + pub fn len(&mut self) -> usize { + self.events.len() + } + + /// Tests whether this `EventVec` is logically empty. + #[inline] + pub fn is_empty(&mut self) -> bool { + self.events.is_empty() + } +} + +impl<'context, Context: self::Context> IntoIterator for &'context EventVec<'context, Context> { + type IntoIter = Iter<'context, Context>; + type Item = (EventFlags, Ref<'context, Context::Target>); + + #[inline] + fn into_iter(self) -> Self::IntoIter { + self.iter() + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1106 @@ +//! The `rustix` `Errno` type. +//! +//! This type holds an OS error code, which conceptually corresponds to an +//! `errno` value. + +use super::super::c; +use libc_errno::errno; + +/// 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. +#[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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const ADV: Self = Self(c::EADV); + /// `EAFNOSUPPORT` + pub const AFNOSUPPORT: Self = Self(c::EAFNOSUPPORT); + /// `EAGAIN` + pub const AGAIN: Self = Self(c::EAGAIN); + /// `EALREADY` + pub const ALREADY: Self = Self(c::EALREADY); + /// `EAUTH` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const AUTH: Self = Self(c::EAUTH); + /// `EBADE` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BADE: Self = Self(c::EBADE); + /// `EBADF` + pub const BADF: Self = Self(c::EBADF); + /// `EBADFD` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BADFD: Self = Self(c::EBADFD); + /// `EBADMSG` + #[cfg(not(windows))] + pub const BADMSG: Self = Self(c::EBADMSG); + /// `EBADR` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BADR: Self = Self(c::EBADR); + /// `EBADRPC` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const BADRPC: Self = Self(c::EBADRPC); + /// `EBADRQC` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BADRQC: Self = Self(c::EBADRQC); + /// `EBADSLT` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BADSLT: Self = Self(c::EBADSLT); + /// `EBFONT` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const BFONT: Self = Self(c::EBFONT); + /// `EBUSY` + #[cfg(not(windows))] + pub const BUSY: Self = Self(c::EBUSY); + /// `ECANCELED` + 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( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const CHRNG: Self = Self(c::ECHRNG); + /// `ECOMM` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + 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( + windows, + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const DEADLOCK: Self = Self(c::EDEADLOCK); + /// `EDESTADDRREQ` + 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(any(target_os = "dragonfly", target_os = "freebsd"))] + pub const DOOFUS: Self = Self(c::EDOOFUS); + /// `EDOTDOT` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + 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( + target_env = "newlib", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const FTYPE: Self = Self(c::EFTYPE); + /// `EHOSTDOWN` + #[cfg(not(target_os = "wasi"))] + pub const HOSTDOWN: Self = Self(c::EHOSTDOWN); + /// `EHOSTUNREACH` + pub const HOSTUNREACH: Self = Self(c::EHOSTUNREACH); + /// `EHWPOISON` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", + )))] + pub const HWPOISON: Self = Self(c::EHWPOISON); + /// `EIDRM` + #[cfg(not(windows))] + pub const IDRM: Self = Self(c::EIDRM); + /// `EILSEQ` + #[cfg(not(windows))] + pub const ILSEQ: Self = Self(c::EILSEQ); + /// `EINPROGRESS` + 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` + pub const ISCONN: Self = Self(c::EISCONN); + /// `EISDIR` + #[cfg(not(windows))] + pub const ISDIR: Self = Self(c::EISDIR); + /// `EISNAM` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const ISNAM: Self = Self(c::EISNAM); + /// `EKEYEXPIRED` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const KEYEXPIRED: Self = Self(c::EKEYEXPIRED); + /// `EKEYREJECTED` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const KEYREJECTED: Self = Self(c::EKEYREJECTED); + /// `EKEYREVOKED` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const KEYREVOKED: Self = Self(c::EKEYREVOKED); + /// `EL2HLT` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const L2HLT: Self = Self(c::EL2HLT); + /// `EL2NSYNC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const L2NSYNC: Self = Self(c::EL2NSYNC); + /// `EL3HLT` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const L3HLT: Self = Self(c::EL3HLT); + /// `EL3RST` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const L3RST: Self = Self(c::EL3RST); + /// `ELIBACC` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LIBACC: Self = Self(c::ELIBACC); + /// `ELIBBAD` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LIBBAD: Self = Self(c::ELIBBAD); + /// `ELIBEXEC` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LIBEXEC: Self = Self(c::ELIBEXEC); + /// `ELIBMAX` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LIBMAX: Self = Self(c::ELIBMAX); + /// `ELIBSCN` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LIBSCN: Self = Self(c::ELIBSCN); + /// `ELNRNG` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const LNRNG: Self = Self(c::ELNRNG); + /// `ELOOP` + pub const LOOP: Self = Self(c::ELOOP); + /// `EMEDIUMTYPE` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + 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` + pub const MSGSIZE: Self = Self(c::EMSGSIZE); + /// `EMULTIHOP` + #[cfg(not(any(windows, target_os = "openbsd")))] + pub const MULTIHOP: Self = Self(c::EMULTIHOP); + /// `ENAMETOOLONG` + pub const NAMETOOLONG: Self = Self(c::ENAMETOOLONG); + /// `ENAVAIL` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const NAVAIL: Self = Self(c::ENAVAIL); + /// `ENEEDAUTH` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const NEEDAUTH: Self = Self(c::ENEEDAUTH); + /// `ENETDOWN` + pub const NETDOWN: Self = Self(c::ENETDOWN); + /// `ENETRESET` + 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const NOANO: Self = Self(c::ENOANO); + /// `ENOATTR` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const NOATTR: Self = Self(c::ENOATTR); + /// `ENOBUFS` + pub const NOBUFS: Self = Self(c::ENOBUFS); + /// `ENOCSI` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const NOCSI: Self = Self(c::ENOCSI); + /// `ENODATA` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const NOKEY: Self = Self(c::ENOKEY); + /// `ENOLCK` + #[cfg(not(windows))] + pub const NOLCK: Self = Self(c::ENOLCK); + /// `ENOLINK` + #[cfg(not(any(windows, target_os = "openbsd")))] + pub const NOLINK: Self = Self(c::ENOLINK); + /// `ENOMEDIUM` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + 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(windows))] + pub const NOMSG: Self = Self(c::ENOMSG); + /// `ENONET` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const NONET: Self = Self(c::ENONET); + /// `ENOPKG` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const NOPKG: Self = Self(c::ENOPKG); + /// `ENOPROTOOPT` + pub const NOPROTOOPT: Self = Self(c::ENOPROTOOPT); + /// `ENOSPC` + #[cfg(not(windows))] + pub const NOSPC: Self = Self(c::ENOSPC); + /// `ENOSR` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const NOSR: Self = Self(c::ENOSR); + /// `ENOSTR` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + 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 = "haiku", 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const NOTNAM: Self = Self(c::ENOTNAM); + /// `ENOTRECOVERABLE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "haiku", + target_os = "netbsd" + )))] + pub const NOTRECOVERABLE: Self = Self(c::ENOTRECOVERABLE); + /// `ENOTSOCK` + pub const NOTSOCK: Self = Self(c::ENOTSOCK); + /// `ENOTSUP` + #[cfg(not(any(windows, target_os = "haiku", 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + 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(windows))] + pub const OVERFLOW: Self = Self(c::EOVERFLOW); + /// `EOWNERDEAD` + #[cfg(not(any( + windows, + target_os = "haiku", + target_os = "dragonfly", + target_os = "netbsd" + )))] + pub const OWNERDEAD: Self = Self(c::EOWNERDEAD); + /// `EPERM` + #[cfg(not(windows))] + pub const PERM: Self = Self(c::EPERM); + /// `EPFNOSUPPORT` + #[cfg(not(target_os = "wasi"))] + pub const PFNOSUPPORT: Self = Self(c::EPFNOSUPPORT); + /// `EPIPE` + #[cfg(not(windows))] + pub const PIPE: Self = Self(c::EPIPE); + /// `EPROCLIM` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const PROCLIM: Self = Self(c::EPROCLIM); + /// `EPROCUNAVAIL` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const PROCUNAVAIL: Self = Self(c::EPROCUNAVAIL); + /// `EPROGMISMATCH` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const PROGMISMATCH: Self = Self(c::EPROGMISMATCH); + /// `EPROGUNAVAIL` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const PROGUNAVAIL: Self = Self(c::EPROGUNAVAIL); + /// `EPROTO` + #[cfg(not(windows))] + pub const PROTO: Self = Self(c::EPROTO); + /// `EPROTONOSUPPORT` + pub const PROTONOSUPPORT: Self = Self(c::EPROTONOSUPPORT); + /// `EPROTOTYPE` + 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const REMCHG: Self = Self(c::EREMCHG); + /// `EREMOTE` + #[cfg(not(any(target_os = "haiku", target_os = "wasi")))] + pub const REMOTE: Self = Self(c::EREMOTE); + /// `EREMOTEIO` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const REMOTEIO: Self = Self(c::EREMOTEIO); + /// `ERESTART` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const RESTART: Self = Self(c::ERESTART); + /// `ERFKILL` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", + )))] + pub const RFKILL: Self = Self(c::ERFKILL); + /// `EROFS` + #[cfg(not(windows))] + pub const ROFS: Self = Self(c::EROFS); + /// `ERPCMISMATCH` + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + pub const RPCMISMATCH: Self = Self(c::ERPCMISMATCH); + /// `ESHUTDOWN` + #[cfg(not(target_os = "wasi"))] + pub const SHUTDOWN: Self = Self(c::ESHUTDOWN); + /// `ESOCKTNOSUPPORT` + #[cfg(not(any(target_os = "haiku", 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const SRMNT: Self = Self(c::ESRMNT); + /// `ESTALE` + pub const STALE: Self = Self(c::ESTALE); + /// `ESTRPIPE` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const STRPIPE: Self = Self(c::ESTRPIPE); + /// `ETIME` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + 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 = "wasi")))] + pub const TOOMANYREFS: Self = Self(c::ETOOMANYREFS); + /// `ETXTBSY` + #[cfg(not(windows))] + pub const TXTBSY: Self = Self(c::ETXTBSY); + /// `EUCLEAN` + #[cfg(not(any( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", + )))] + pub const UCLEAN: Self = Self(c::EUCLEAN); + /// `EUNATCH` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", + )))] + pub const UNATCH: Self = Self(c::EUNATCH); + /// `EUSERS` + #[cfg(not(any(target_os = "haiku", 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( + windows, + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/io_slice.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/io_slice.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/io_slice.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/io_slice.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,87 @@ +//! The following is derived from Rust's +//! library/std/src/sys/unix/io.rs +//! dca3f1b786efd27be3b325ed1e01e247aa589c3b. + +#![allow(missing_docs)] + +use super::super::c; +use core::marker::PhantomData; +use core::slice; + +#[derive(Copy, Clone)] +#[repr(transparent)] +pub struct IoSlice<'a> { + vec: c::iovec, + _p: PhantomData<&'a [u8]>, +} + +impl<'a> IoSlice<'a> { + #[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(), + }, + _p: PhantomData, + } + } + + #[inline] + pub fn advance(&mut self, n: usize) { + if self.vec.iov_len < n { + panic!("advancing IoSlice beyond its length"); + } + + unsafe { + self.vec.iov_len -= n; + self.vec.iov_base = self.vec.iov_base.add(n); + } + } + + #[inline] + pub fn as_slice(&self) -> &[u8] { + unsafe { slice::from_raw_parts(self.vec.iov_base as *mut u8, self.vec.iov_len) } + } +} + +#[repr(transparent)] +pub struct IoSliceMut<'a> { + vec: c::iovec, + _p: PhantomData<&'a mut [u8]>, +} + +impl<'a> IoSliceMut<'a> { + #[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(), + }, + _p: PhantomData, + } + } + + #[inline] + pub fn advance(&mut self, n: usize) { + if self.vec.iov_len < n { + panic!("advancing IoSliceMut beyond its length"); + } + + unsafe { + self.vec.iov_len -= n; + self.vec.iov_base = self.vec.iov_base.add(n); + } + } + + #[inline] + pub fn as_slice(&self) -> &[u8] { + unsafe { slice::from_raw_parts(self.vec.iov_base as *mut u8, self.vec.iov_len) } + } + + #[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) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,13 @@ +pub(crate) mod errno; +#[cfg(not(windows))] +#[cfg(not(feature = "std"))] +pub(crate) mod io_slice; +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(target_os = "android", target_os = "linux"))] +pub mod epoll; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/poll_fd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/poll_fd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/poll_fd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/poll_fd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,136 @@ +use super::super::c; +use super::super::conv::borrowed_fd; +#[cfg(windows)] +use super::super::fd::RawFd; +use super::super::fd::{AsFd, AsRawFd, BorrowedFd, LibcFd}; +use bitflags::bitflags; +use core::marker::PhantomData; +#[cfg(windows)] +use std::fmt; + +bitflags! { + /// `POLL*` flags for use with [`poll`]. + /// + /// [`poll`]: crate::io::poll + pub struct PollFlags: c::c_short { + /// `POLLIN` + const IN = c::POLLIN; + /// `POLLPRI` + #[cfg(not(target_os = "wasi"))] + const PRI = c::POLLPRI; + /// `POLLOUT` + const OUT = c::POLLOUT; + /// `POLLRDNORM` + #[cfg(not(target_os = "redox"))] + const RDNORM = c::POLLRDNORM; + /// `POLLWRNORM` + #[cfg(not(target_os = "redox"))] + const WRNORM = c::POLLWRNORM; + /// `POLLRDBAND` + #[cfg(not(any(target_os = "redox", target_os = "wasi")))] + const RDBAND = c::POLLRDBAND; + /// `POLLWRBAND` + #[cfg(not(any(target_os = "redox", target_os = "wasi")))] + const WRBAND = c::POLLWRBAND; + /// `POLLERR` + const ERR = c::POLLERR; + /// `POLLHUP` + const HUP = c::POLLHUP; + /// `POLLNVAL` + const NVAL = c::POLLNVAL; + /// `POLLRDHUP` + #[cfg(all( + any(target_os = "android", target_os = "linux"), + not(any(target_arch = "sparc", target_arch = "sparc64"))), + )] + const RDHUP = c::POLLRDHUP; + } +} + +/// `struct pollfd`—File descriptor and flags for use with [`poll`]. +/// +/// [`poll`]: crate::io::poll +#[doc(alias = "pollfd")] +#[derive(Clone)] +#[cfg_attr(not(windows), derive(Debug))] +#[repr(transparent)] +pub struct PollFd<'fd> { + pollfd: c::pollfd, + _phantom: PhantomData>, +} + +#[cfg(windows)] +impl<'fd> fmt::Debug for PollFd<'fd> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + fmt.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: &'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(&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> io_lifetimes::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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,555 @@ +//! libc syscalls supporting `rustix::io`. + +use super::super::c; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::super::conv::syscall_ret_owned_fd; +use super::super::conv::{ + borrowed_fd, ret, ret_c_int, ret_discarded_fd, ret_owned_fd, ret_ssize_t, +}; +use super::super::offset::{libc_pread, libc_pwrite}; +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "solaris")))] +use super::super::offset::{libc_preadv, libc_pwritev}; +#[cfg(all(target_os = "linux", target_env = "gnu"))] +use super::super::offset::{libc_preadv2, libc_pwritev2}; +use crate::fd::{AsFd, BorrowedFd, OwnedFd, RawFd}; +#[cfg(not(any(target_os = "aix", target_os = "wasi")))] +use crate::io::DupFlags; +#[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "wasi" +)))] +use crate::io::PipeFlags; +use crate::io::{self, FdFlags, IoSlice, IoSliceMut, PollFd}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::io::{EventfdFlags, IoSliceRaw, ReadWriteFlags, SpliceFlags}; +use core::cmp::min; +use core::convert::TryInto; +use core::mem::MaybeUninit; +#[cfg(any(target_os = "android", target_os = "linux"))] +use core::ptr; +#[cfg(all(feature = "fs", feature = "net"))] +use libc_errno::errno; + +pub(crate) fn read(fd: BorrowedFd<'_>, buf: &mut [u8]) -> io::Result { + let nread = unsafe { + ret_ssize_t(c::read( + borrowed_fd(fd), + buf.as_mut_ptr().cast(), + min(buf.len(), READ_LIMIT), + ))? + }; + Ok(nread as usize) +} + +pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result { + let nwritten = unsafe { + ret_ssize_t(c::write( + borrowed_fd(fd), + buf.as_ptr().cast(), + min(buf.len(), READ_LIMIT), + ))? + }; + Ok(nwritten as usize) +} + +pub(crate) fn pread(fd: BorrowedFd<'_>, buf: &mut [u8], offset: u64) -> io::Result { + let len = min(buf.len(), READ_LIMIT); + + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + + let nread = unsafe { + ret_ssize_t(libc_pread( + borrowed_fd(fd), + buf.as_mut_ptr().cast(), + len, + offset, + ))? + }; + Ok(nread as usize) +} + +pub(crate) fn pwrite(fd: BorrowedFd<'_>, buf: &[u8], offset: u64) -> io::Result { + let len = min(buf.len(), READ_LIMIT); + + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + + let nwritten = unsafe { + ret_ssize_t(libc_pwrite( + borrowed_fd(fd), + buf.as_ptr().cast(), + len, + offset, + ))? + }; + Ok(nwritten as usize) +} + +pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut]) -> io::Result { + let nread = unsafe { + ret_ssize_t(c::readv( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + ))? + }; + Ok(nread as usize) +} + +pub(crate) fn writev(fd: BorrowedFd<'_>, bufs: &[IoSlice]) -> io::Result { + let nwritten = unsafe { + ret_ssize_t(c::writev( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "solaris")))] +pub(crate) fn preadv( + fd: BorrowedFd<'_>, + bufs: &mut [IoSliceMut], + offset: u64, +) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nread = unsafe { + ret_ssize_t(libc_preadv( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + ))? + }; + Ok(nread as usize) +} + +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "solaris")))] +pub(crate) fn pwritev(fd: BorrowedFd<'_>, bufs: &[IoSlice], offset: u64) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nwritten = unsafe { + ret_ssize_t(libc_pwritev( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(all(target_os = "linux", target_env = "gnu"))] +pub(crate) fn preadv2( + fd: BorrowedFd<'_>, + bufs: &mut [IoSliceMut], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nread = unsafe { + ret_ssize_t(libc_preadv2( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + flags.bits(), + ))? + }; + Ok(nread as usize) +} + +/// At present, `libc` only has `preadv2` defined for glibc. On other +/// ABIs, use `libc::syscall`. +#[cfg(any( + target_os = "android", + all(target_os = "linux", not(target_env = "gnu")), +))] +#[inline] +pub(crate) fn preadv2( + fd: BorrowedFd<'_>, + bufs: &mut [IoSliceMut], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nread = unsafe { + ret_ssize_t(libc::syscall( + libc::SYS_preadv2, + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + flags.bits(), + ) as c::ssize_t)? + }; + Ok(nread as usize) +} + +#[cfg(all(target_os = "linux", target_env = "gnu"))] +pub(crate) fn pwritev2( + fd: BorrowedFd<'_>, + bufs: &[IoSlice], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nwritten = unsafe { + ret_ssize_t(libc_pwritev2( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + flags.bits(), + ))? + }; + Ok(nwritten as usize) +} + +/// At present, `libc` only has `pwritev2` defined for glibc. On other +/// ABIs, use `libc::syscall`. +#[cfg(any( + target_os = "android", + all(target_os = "linux", not(target_env = "gnu")), +))] +#[inline] +pub(crate) fn pwritev2( + fd: BorrowedFd<'_>, + bufs: &[IoSlice], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + // Silently cast; we'll get `EINVAL` if the value is negative. + let offset = offset as i64; + let nwritten = unsafe { + ret_ssize_t(libc::syscall( + libc::SYS_pwritev2, + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()) as c::c_int, + offset, + flags.bits(), + ) as c::ssize_t)? + }; + Ok(nwritten as usize) +} + +// These functions are derived from Rust's library/std/src/sys/unix/fd.rs at +// revision a77da2d454e6caa227a85b16410b95f93495e7e0. + +// The maximum read limit on most POSIX-like systems is `SSIZE_MAX`, with the +// man 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; + +#[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +))] +const fn max_iov() -> usize { + c::IOV_MAX as usize +} + +#[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux"))] +const fn max_iov() -> usize { + c::UIO_MAXIOV as usize +} + +#[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "ios", + target_os = "linux", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +)))] +const fn max_iov() -> usize { + 16 // The minimum value required by POSIX. +} + +pub(crate) unsafe fn close(raw_fd: RawFd) { + let _ = c::close(raw_fd as c::c_int); +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result { + unsafe { syscall_ret_owned_fd(c::syscall(c::SYS_eventfd2, initval, flags.bits())) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn ioctl_blksszget(fd: BorrowedFd) -> io::Result { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(c::ioctl(borrowed_fd(fd), c::BLKSSZGET, result.as_mut_ptr()))?; + Ok(result.assume_init() as u32) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn ioctl_blkpbszget(fd: BorrowedFd) -> io::Result { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(c::ioctl( + borrowed_fd(fd), + c::BLKPBSZGET, + result.as_mut_ptr(), + ))?; + Ok(result.assume_init() as u32) + } +} + +#[cfg(not(target_os = "redox"))] +pub(crate) fn ioctl_fionread(fd: BorrowedFd<'_>) -> io::Result { + let mut nread = MaybeUninit::::uninit(); + unsafe { + ret(c::ioctl(borrowed_fd(fd), c::FIONREAD, nread.as_mut_ptr()))?; + // `FIONREAD` returns the number of bytes silently casted to a `c_int`, + // even when this is lossy. The best we can do is convert it back to a + // `u64` without sign-extending it back first. + Ok(u64::from(nread.assume_init() as c::c_uint)) + } +} + +pub(crate) fn ioctl_fionbio(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> { + unsafe { + let data = value as c::c_int; + ret(c::ioctl(borrowed_fd(fd), c::FIONBIO, &data)) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +#[cfg(all(feature = "fs", feature = "net"))] +pub(crate) fn is_read_write(fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { + let (mut read, mut write) = crate::fs::fd::_is_file_read_write(fd)?; + let mut not_socket = false; + if read { + // Do a `recv` with `PEEK` and `DONTWAIT` for 1 byte. A 0 indicates + // the read side is shut down; an `EWOULDBLOCK` indicates the read + // side is still open. + match unsafe { + c::recv( + borrowed_fd(fd), + MaybeUninit::<[u8; 1]>::uninit() + .as_mut_ptr() + .cast::(), + 1, + c::MSG_PEEK | c::MSG_DONTWAIT, + ) + } { + 0 => read = false, + -1 => { + #[allow(unreachable_patterns)] // `EAGAIN` may equal `EWOULDBLOCK` + match errno().0 { + c::EAGAIN | c::EWOULDBLOCK => (), + c::ENOTSOCK => not_socket = true, + err => return Err(io::Errno(err)), + } + } + _ => (), + } + } + if write && !not_socket { + // Do a `send` with `DONTWAIT` for 0 bytes. An `EPIPE` indicates + // the write side is shut down. + if unsafe { c::send(borrowed_fd(fd), [].as_ptr(), 0, c::MSG_DONTWAIT) } == -1 { + #[allow(unreachable_patterns)] // `EAGAIN` may equal `EWOULDBLOCK` + match errno().0 { + c::EAGAIN | c::EWOULDBLOCK => (), + c::ENOTSOCK => (), + c::EPIPE => write = false, + err => return Err(io::Errno(err)), + } + } + } + Ok((read, write)) +} + +#[cfg(target_os = "wasi")] +#[cfg(all(feature = "fs", feature = "net"))] +pub(crate) fn is_read_write(_fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { + todo!("Implement is_read_write for WASI in terms of fd_fdstat_get"); +} + +pub(crate) fn fcntl_getfd(fd: BorrowedFd<'_>) -> io::Result { + unsafe { ret_c_int(c::fcntl(borrowed_fd(fd), c::F_GETFD)).map(FdFlags::from_bits_truncate) } +} + +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(target_os = "wasi"))] +pub(crate) fn fcntl_dupfd_cloexec(fd: BorrowedFd<'_>, min: RawFd) -> io::Result { + unsafe { ret_owned_fd(c::fcntl(borrowed_fd(fd), c::F_DUPFD_CLOEXEC, min)) } +} + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn dup(fd: BorrowedFd<'_>) -> io::Result { + unsafe { ret_owned_fd(c::dup(borrowed_fd(fd))) } +} + +#[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()))) } +} + +#[cfg(not(any( + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", + 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()), + flags.bits(), + )) + } +} + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + 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) +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub(crate) fn ioctl_fioclex(fd: BorrowedFd<'_>) -> io::Result<()> { + unsafe { ret(c::ioctl(borrowed_fd(fd), c::FIOCLEX)) } +} + +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))] +pub(crate) fn ioctl_tiocexcl(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(c::ioctl(borrowed_fd(fd), c::TIOCEXCL as _)) } +} + +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "wasi")))] +pub(crate) fn ioctl_tiocnxcl(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(c::ioctl(borrowed_fd(fd), c::TIOCNXCL as _)) } +} + +#[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::()))?; + let [p0, p1] = result.assume_init(); + Ok((p0, p1)) + } +} + +#[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + 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::(), flags.bits()))?; + let [p0, p1] = result.assume_init(); + Ok((p0, p1)) + } +} + +#[inline] +pub(crate) fn poll(fds: &mut [PollFd<'_>], timeout: c::c_int) -> io::Result { + let nfds = fds + .len() + .try_into() + .map_err(|_convert_err| io::Errno::INVAL)?; + + ret_c_int(unsafe { c::poll(fds.as_mut_ptr().cast(), nfds, timeout) }) + .map(|nready| nready as usize) +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn splice( + fd_in: BorrowedFd, + off_in: Option<&mut u64>, + fd_out: BorrowedFd, + off_out: Option<&mut u64>, + len: usize, + flags: SpliceFlags, +) -> io::Result { + let off_in = off_in + .map(|off| (off as *mut u64).cast()) + .unwrap_or(ptr::null_mut()); + + let off_out = off_out + .map(|off| (off as *mut u64).cast()) + .unwrap_or(ptr::null_mut()); + + ret_ssize_t(unsafe { + c::splice( + borrowed_fd(fd_in), + off_in, + borrowed_fd(fd_out), + off_out, + len, + flags.bits(), + ) + }) + .map(|spliced| spliced as usize) +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub unsafe fn vmsplice( + fd: BorrowedFd, + bufs: &[IoSliceRaw], + flags: SpliceFlags, +) -> io::Result { + ret_ssize_t(c::vmsplice( + borrowed_fd(fd), + bufs.as_ptr().cast::(), + min(bufs.len(), max_iov()), + flags.bits(), + )) + .map(|spliced| spliced as usize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,159 @@ +use super::super::c; +use bitflags::bitflags; +#[cfg(any(target_os = "android", target_os = "linux"))] +use core::marker::PhantomData; + +bitflags! { + /// `FD_*` constants for use with [`fcntl_getfd`] and [`fcntl_setfd`]. + /// + /// [`fcntl_getfd`]: crate::io::fcntl_getfd + /// [`fcntl_setfd`]: crate::io::fcntl_setfd + pub struct FdFlags: c::c_int { + /// `FD_CLOEXEC` + const CLOEXEC = c::FD_CLOEXEC; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`]. + /// + /// [`preadv2`]: crate::io::preadv2 + /// [`pwritev2`]: crate::io::pwritev + pub struct ReadWriteFlags: c::c_int { + /// `RWF_DSYNC` (since Linux 4.7) + const DSYNC = linux_raw_sys::general::RWF_DSYNC as c::c_int; + /// `RWF_HIPRI` (since Linux 4.6) + const HIPRI = linux_raw_sys::general::RWF_HIPRI as c::c_int; + /// `RWF_SYNC` (since Linux 4.7) + const SYNC = linux_raw_sys::general::RWF_SYNC as c::c_int; + /// `RWF_NOWAIT` (since Linux 4.14) + const NOWAIT = linux_raw_sys::general::RWF_NOWAIT as c::c_int; + /// `RWF_APPEND` (since Linux 4.16) + const APPEND = linux_raw_sys::general::RWF_APPEND as c::c_int; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `SPLICE_F_*` constants for use with [`splice`] and [`vmsplice`]. + pub struct SpliceFlags: c::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; + } +} + +#[cfg(not(target_os = "wasi"))] +bitflags! { + /// `O_*` constants for use with [`dup2`]. + /// + /// [`dup2`]: crate::io::dup2 + pub struct DupFlags: c::c_int { + /// `O_CLOEXEC` + #[cfg(not(any( + target_os = "android", + target_os = "ios", + target_os = "macos", + target_os = "redox", + )))] // Android 5.0 has dup3, but libc doesn't have bindings + const CLOEXEC = c::O_CLOEXEC; + } +} + +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +bitflags! { + /// `O_*` constants for use with [`pipe_with`]. + /// + /// [`pipe_with`]: crate::io::pipe_with + pub struct PipeFlags: c::c_int { + /// `O_CLOEXEC` + const CLOEXEC = c::O_CLOEXEC; + /// `O_DIRECT` + #[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const DIRECT = c::O_DIRECT; + /// `O_NONBLOCK` + const NONBLOCK = c::O_NONBLOCK; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `EFD_*` flags for use with [`eventfd`]. + /// + /// [`eventfd`]: crate::io::eventfd + pub struct EventfdFlags: c::c_int { + /// `EFD_CLOEXEC` + const CLOEXEC = c::EFD_CLOEXEC; + /// `EFD_NONBLOCK` + const NONBLOCK = c::EFD_NONBLOCK; + /// `EFD_SEMAPHORE` + const SEMAPHORE = c::EFD_SEMAPHORE; + } +} + +/// `PIPE_BUF`—The maximum size of a write to a pipe guaranteed to be atomic. +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub const PIPE_BUF: usize = c::PIPE_BUF; + +#[cfg(not(any(windows, target_os = "redox")))] +pub(crate) const AT_FDCWD: c::c_int = c::AT_FDCWD; +#[cfg(not(windows))] +pub(crate) const STDIN_FILENO: c::c_int = c::STDIN_FILENO; +#[cfg(not(windows))] +pub(crate) const STDOUT_FILENO: c::c_int = c::STDOUT_FILENO; +#[cfg(not(windows))] +pub(crate) const STDERR_FILENO: c::c_int = c::STDERR_FILENO; + +/// A buffer type used 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. +#[cfg(any(target_os = "android", target_os = "linux"))] +#[repr(transparent)] +pub struct IoSliceRaw<'a> { + _buf: c::iovec, + _lifetime: PhantomData<&'a ()>, +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +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 as *mut 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() as *mut c::c_void, + iov_len: buf.len() as _, + }, + _lifetime: PhantomData, + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/windows_syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/windows_syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/windows_syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io/windows_syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,39 @@ +//! Windows system calls in the `io` module. + +use super::super::c; +use super::super::conv::{borrowed_fd, ret, ret_c_int}; +use super::super::fd::LibcFd; +use crate::fd::{BorrowedFd, RawFd}; +use crate::io; +use crate::io::PollFd; +use core::convert::TryInto; +use core::mem::MaybeUninit; + +pub(crate) unsafe fn close(raw_fd: RawFd) { + let _ = c::close(raw_fd as LibcFd); +} + +pub(crate) fn ioctl_fionread(fd: BorrowedFd<'_>) -> io::Result { + let mut nread = MaybeUninit::::uninit(); + unsafe { + ret(c::ioctl(borrowed_fd(fd), c::FIONREAD, nread.as_mut_ptr()))?; + Ok(u64::from(nread.assume_init())) + } +} + +pub(crate) fn ioctl_fionbio(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> { + unsafe { + let mut data = value as c::c_uint; + ret(c::ioctl(borrowed_fd(fd), c::FIONBIO, &mut data)) + } +} + +pub(crate) fn poll(fds: &mut [PollFd<'_>], timeout: c::c_int) -> io::Result { + let nfds = fds + .len() + .try_into() + .map_err(|_convert_err| io::Errno::INVAL)?; + + ret_c_int(unsafe { c::poll(fds.as_mut_ptr().cast(), nfds, timeout) }) + .map(|nready| nready as usize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_lifetimes.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_lifetimes.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_lifetimes.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_lifetimes.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,77 @@ +//! `io_lifetimes` types for Windows assuming that Fd is Socket. +//! +//! We can make this assumption since `rustix` supports only `rustix::net` on +//! Windows. + +pub use io_lifetimes::{BorrowedSocket as BorrowedFd, OwnedSocket as OwnedFd}; +#[cfg(feature = "std")] +pub use std::os::windows::io::RawSocket as RawFd; +pub(crate) use windows_sys::Win32::Networking::WinSock::SOCKET as LibcFd; + +// Re-export the `Socket` traits so that users can implement them. +pub use io_lifetimes::AsSocket; + +/// A version of [`AsRawFd`] for use with Winsock2 API. +/// +/// [`AsRawFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.AsRawFd.html +pub trait AsRawFd { + /// A version of [`as_raw_fd`] for use with Winsock2 API. + /// + /// [`as_raw_fd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html#tymethod.as_raw_fd + fn as_raw_fd(&self) -> RawFd; +} +#[cfg(feature = "std")] +impl AsRawFd for T { + #[inline] + fn as_raw_fd(&self) -> RawFd { + self.as_raw_socket() + } +} + +/// A version of [`IntoRawFd`] for use with Winsock2 API. +/// +/// [`IntoRawFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.IntoRawFd.html +pub trait IntoRawFd { + /// A version of [`into_raw_fd`] for use with Winsock2 API. + /// + /// [`into_raw_fd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html#tymethod.into_raw_fd + fn into_raw_fd(self) -> RawFd; +} +#[cfg(feature = "std")] +impl IntoRawFd for T { + #[inline] + fn into_raw_fd(self) -> RawFd { + self.into_raw_socket() + } +} + +/// A version of [`FromRawFd`] for use with Winsock2 API. +/// +/// [`FromRawFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html +pub trait FromRawFd { + /// A version of [`from_raw_fd`] for use with Winsock2 API. + /// + /// [`from_raw_fd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.FromRawFd.html#tymethod.from_raw_fd + unsafe fn from_raw_fd(raw_fd: RawFd) -> Self; +} +#[cfg(feature = "std")] +impl 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 Winsock2 API. +/// +/// [`AsFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.AsFd.html +pub trait AsFd { + /// An `as_fd` function for Winsock2, where a `Fd` is a `Socket`. + fn as_fd(&self) -> BorrowedFd; +} +impl AsFd for T { + #[inline] + fn as_fd(&self) -> BorrowedFd { + self.as_socket() + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +pub(crate) mod syscalls; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/io_uring/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,55 @@ +//! libc syscalls supporting `rustix::io_uring`. + +use super::super::c; +use super::super::conv::{borrowed_fd, syscall_ret, syscall_ret_owned_fd, syscall_ret_u32}; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::io; +use crate::io_uring::{io_uring_params, IoringEnterFlags, IoringRegisterOp}; +use linux_raw_sys::general::{__NR_io_uring_enter, __NR_io_uring_register, __NR_io_uring_setup}; + +#[inline] +pub(crate) fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result { + unsafe { + syscall_ret_owned_fd(c::syscall( + __NR_io_uring_setup as _, + entries as usize, + params, + )) + } +} + +#[inline] +pub(crate) unsafe fn io_uring_register( + fd: BorrowedFd<'_>, + opcode: IoringRegisterOp, + arg: *const c::c_void, + nr_args: u32, +) -> io::Result<()> { + syscall_ret(c::syscall( + __NR_io_uring_register as _, + borrowed_fd(fd), + opcode as u32 as usize, + arg, + nr_args as usize, + )) +} + +#[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 { + syscall_ret_u32(c::syscall( + __NR_io_uring_enter as _, + borrowed_fd(fd), + to_submit as usize, + min_complete as usize, + flags.bits() as usize, + arg, + size, + )) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,218 @@ +//! libc syscalls supporting `rustix::mm`. + +use super::super::c; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::super::conv::syscall_ret_owned_fd; +use super::super::conv::{borrowed_fd, no_fd, ret}; +use super::super::offset::libc_mmap; +#[cfg(not(target_os = "redox"))] +use super::types::Advice; +#[cfg(target_os = "linux")] +use super::types::MremapFlags; +use super::types::{MapFlags, MprotectFlags, MsyncFlags, ProtFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::types::{MlockFlags, UserfaultfdFlags}; +use crate::fd::BorrowedFd; +#[cfg(any(target_os = "android", target_os = "linux"))] +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, flags.bits()); + + // `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 = libc_mmap( + ptr, + len, + prot.bits(), + flags.bits(), + 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 = libc_mmap( + ptr, + len, + prot.bits(), + flags.bits() | 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, flags.bits())) +} + +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(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, flags.bits()); + 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(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, + flags.bits() | 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(any(target_os = "android", target_os = "linux"))] +#[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, flags.bits())) +} + +/// # 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(any(target_os = "android", target_os = "linux"))] +pub(crate) unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result { + syscall_ret_owned_fd(c::syscall(c::SYS_userfaultfd, flags.bits())) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mm/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,428 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `PROT_*` flags for use with [`mmap`]. + /// + /// For `PROT_NONE`, use `ProtFlags::empty()`. + /// + /// [`mmap`]: crate::io::mmap + pub struct ProtFlags: c::c_int { + /// `PROT_READ` + const READ = c::PROT_READ; + /// `PROT_WRITE` + const WRITE = c::PROT_WRITE; + /// `PROT_EXEC` + const EXEC = c::PROT_EXEC; + } +} + +bitflags! { + /// `PROT_*` flags for use with [`mprotect`]. + /// + /// For `PROT_NONE`, use `MprotectFlags::empty()`. + /// + /// [`mprotect`]: crate::io::mprotect + pub struct MprotectFlags: c::c_int { + /// `PROT_READ` + const READ = c::PROT_READ; + /// `PROT_WRITE` + const WRITE = c::PROT_WRITE; + /// `PROT_EXEC` + const EXEC = c::PROT_EXEC; + /// `PROT_GROWSUP` + #[cfg(any(target_os = "android", target_os = "linux"))] + const GROWSUP = c::PROT_GROWSUP; + /// `PROT_GROWSDOWN` + #[cfg(any(target_os = "android", target_os = "linux"))] + const GROWSDOWN = c::PROT_GROWSDOWN; + } +} + +bitflags! { + /// `MAP_*` flags for use with [`mmap`]. + /// + /// For `MAP_ANONYMOUS` (aka `MAP_ANON`), see [`mmap_anonymous`]. + /// + /// [`mmap`]: crate::io::mmap + /// [`mmap_anonymous`]: crates::io::mmap_anonymous + pub struct MapFlags: c::c_int { + /// `MAP_SHARED` + const SHARED = c::MAP_SHARED; + /// `MAP_SHARED_VALIDATE` + #[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const SHARED_VALIDATE = c::MAP_SHARED_VALIDATE; + /// `MAP_PRIVATE` + const PRIVATE = c::MAP_PRIVATE; + /// `MAP_DENYWRITE` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const DENYWRITE = c::MAP_DENYWRITE; + /// `MAP_FIXED` + const FIXED = c::MAP_FIXED; + /// `MAP_FIXED_NOREPLACE` + #[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const FIXED_NOREPLACE = c::MAP_FIXED_NOREPLACE; + /// `MAP_GROWSDOWN` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const GROWSDOWN = c::MAP_GROWSDOWN; + /// `MAP_HUGETLB` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const HUGETLB = c::MAP_HUGETLB; + /// `MAP_HUGE_2MB` + #[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const HUGE_2MB = c::MAP_HUGE_2MB; + /// `MAP_HUGE_1GB` + #[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const HUGE_1GB = c::MAP_HUGE_1GB; + /// `MAP_LOCKED` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const LOCKED = c::MAP_LOCKED; + /// `MAP_NOCORE` + #[cfg(any(target_os = "dragonfly", target_os = "freebsd"))] + const NOCORE = c::MAP_NOCORE; + /// `MAP_NORESERVE` + #[cfg(not(any(target_os = "dragonfly", target_os = "freebsd", target_os = "redox")))] + const NORESERVE = c::MAP_NORESERVE; + /// `MAP_NOSYNC` + #[cfg(any(target_os = "dragonfly", target_os = "freebsd"))] + const NOSYNC = c::MAP_NOSYNC; + /// `MAP_POPULATE` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + const POPULATE = c::MAP_POPULATE; + /// `MAP_STACK` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + )))] + const STACK = c::MAP_STACK; + /// `MAP_PREFAULT_READ` + #[cfg(target_os = "freebsd")] + const PREFAULT_READ = c::MAP_PREFAULT_READ; + /// `MAP_SYNC` + #[cfg(not(any( + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + all( + any(target_os = "android", target_os = "linux"), + any(target_arch = "mips", target_arch = "mips64"), + ) + )))] + const SYNC = c::MAP_SYNC; + /// `MAP_UNINITIALIZED` + #[cfg(any())] + const UNINITIALIZED = c::MAP_UNINITIALIZED; + } +} + +#[cfg(target_os = "linux")] +bitflags! { + /// `MREMAP_*` flags for use with [`mremap`]. + /// + /// For `MREMAP_FIXED`, see [`mremap_fixed`]. + /// + /// [`mremap`]: crate::io::mremap + /// [`mremap_fixed`]: crate::io::mremap_fixed + pub struct MremapFlags: i32 { + /// `MREMAP_MAYMOVE` + const MAYMOVE = c::MREMAP_MAYMOVE; + } +} + +bitflags! { + /// `MS_*` flags for use with [`msync`]. + /// + /// [`msync`]: crate::io::msync + pub struct MsyncFlags: i32 { + /// `MS_SYNC`—Requests an update and waits for it to complete. + const SYNC = c::MS_SYNC; + /// `MS_ASYNC`—Specifies that an update be scheduled, but the call + /// returns immediately. + const ASYNC = 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 = c::MS_INVALIDATE; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `MLOCK_*` flags for use with [`mlock_with`]. + /// + /// [`mlock_with`]: crate::io::mlock_with + pub struct MlockFlags: i32 { + /// `MLOCK_ONFAULT` + const ONFAULT = c::MLOCK_ONFAULT as _; + } +} + +/// `POSIX_MADV_*` constants for use with [`madvise`]. +/// +/// [`madvise`]: crate::mm::madvise +#[cfg(not(target_os = "redox"))] +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +#[repr(i32)] +#[non_exhaustive] +pub enum Advice { + /// `POSIX_MADV_NORMAL` + #[cfg(not(any(target_os = "android", target_os = "haiku")))] + Normal = c::POSIX_MADV_NORMAL, + + /// `POSIX_MADV_NORMAL` + #[cfg(any(target_os = "android", target_os = "haiku"))] + Normal = c::MADV_NORMAL, + + /// `POSIX_MADV_SEQUENTIAL` + #[cfg(not(any(target_os = "android", target_os = "haiku")))] + Sequential = c::POSIX_MADV_SEQUENTIAL, + + /// `POSIX_MADV_SEQUENTIAL` + #[cfg(any(target_os = "android", target_os = "haiku"))] + Sequential = c::MADV_SEQUENTIAL, + + /// `POSIX_MADV_RANDOM` + #[cfg(not(any(target_os = "android", target_os = "haiku")))] + Random = c::POSIX_MADV_RANDOM, + + /// `POSIX_MADV_RANDOM` + #[cfg(any(target_os = "android", target_os = "haiku"))] + Random = c::MADV_RANDOM, + + /// `POSIX_MADV_WILLNEED` + #[cfg(not(any(target_os = "android", target_os = "haiku")))] + WillNeed = c::POSIX_MADV_WILLNEED, + + /// `POSIX_MADV_WILLNEED` + #[cfg(any(target_os = "android", target_os = "haiku"))] + WillNeed = c::MADV_WILLNEED, + + /// `POSIX_MADV_DONTNEED` + #[cfg(not(any(target_os = "android", target_os = "emscripten", target_os = "haiku")))] + DontNeed = c::POSIX_MADV_DONTNEED, + + /// `POSIX_MADV_DONTNEED` + #[cfg(any(target_os = "android", target_os = "haiku"))] + DontNeed = 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 = i32::MAX, + + /// `MADV_DONTNEED` + #[cfg(target_os = "android")] + LinuxDontNeed = c::MADV_DONTNEED, + /// `MADV_FREE` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxFree = c::MADV_FREE, + /// `MADV_REMOVE` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxRemove = c::MADV_REMOVE, + /// `MADV_DONTFORK` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxDontFork = c::MADV_DONTFORK, + /// `MADV_DOFORK` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxDoFork = c::MADV_DOFORK, + /// `MADV_HWPOISON` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxHwPoison = c::MADV_HWPOISON, + /// `MADV_SOFT_OFFLINE` + #[cfg(all( + any(target_os = "android", target_os = "linux"), + not(any(target_arch = "mips", target_arch = "mips64")), + ))] + LinuxSoftOffline = c::MADV_SOFT_OFFLINE, + /// `MADV_MERGEABLE` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxMergeable = c::MADV_MERGEABLE, + /// `MADV_UNMERGEABLE` + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxUnmergeable = c::MADV_UNMERGEABLE, + /// `MADV_HUGEPAGE` (since Linux 2.6.38) + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxHugepage = c::MADV_HUGEPAGE, + /// `MADV_NOHUGEPAGE` (since Linux 2.6.38) + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxNoHugepage = c::MADV_NOHUGEPAGE, + /// `MADV_DONTDUMP` (since Linux 3.4) + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxDontDump = c::MADV_DONTDUMP, + /// `MADV_DODUMP` (since Linux 3.4) + #[cfg(any(target_os = "android", target_os = "linux"))] + LinuxDoDump = c::MADV_DODUMP, + /// `MADV_WIPEONFORK` (since Linux 4.14) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxWipeOnFork = linux_raw_sys::general::MADV_WIPEONFORK as i32, + /// `MADV_KEEPONFORK` (since Linux 4.14) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxKeepOnFork = linux_raw_sys::general::MADV_KEEPONFORK as i32, + /// `MADV_COLD` (since Linux 5.4) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxCold = linux_raw_sys::general::MADV_COLD as i32, + /// `MADV_PAGEOUT` (since Linux 5.4) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxPageOut = linux_raw_sys::general::MADV_PAGEOUT as i32, + /// `MADV_POPULATE_READ` (since Linux 5.14) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxPopulateRead = linux_raw_sys::general::MADV_POPULATE_READ as i32, + /// `MADV_POPULATE_WRITE` (since Linux 5.14) + #[cfg(any(target_os = "android", target_os = "linux"))] + #[cfg(feature = "mm")] + LinuxPopulateWrite = linux_raw_sys::general::MADV_POPULATE_WRITE as i32, +} + +#[cfg(target_os = "emscripten")] +impl Advice { + /// `POSIX_MADV_DONTNEED` + #[allow(non_upper_case_globals)] + pub const DontNeed: Self = Self::Normal; +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `O_*` flags for use with [`userfaultfd`]. + /// + /// [`userfaultfd`]: crate::io::userfaultfd + pub struct UserfaultfdFlags: c::c_int { + /// `O_CLOEXEC` + const CLOEXEC = c::O_CLOEXEC; + /// `O_NONBLOCK` + const NONBLOCK = c::O_NONBLOCK; + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,110 @@ +//! The libc backend. +//! +//! On most platforms, this uses the `libc` crate to make system calls. On +//! Windows, this uses the Winsock2 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)] + +#[cfg(not(any(windows, target_os = "wasi")))] +#[macro_use] +mod weak; + +mod conv; +mod offset; + +#[cfg(windows)] +mod io_lifetimes; +#[cfg(not(windows))] +#[cfg(not(feature = "std"))] +pub(crate) mod fd { + pub(crate) use super::c::c_int as LibcFd; + pub use crate::io::fd::*; +} +#[cfg(windows)] +pub(crate) mod fd { + pub use super::io_lifetimes::*; +} +#[cfg(not(windows))] +#[cfg(feature = "std")] +pub(crate) mod fd { + pub use io_lifetimes::*; + + #[cfg(target_os = "wasi")] + #[allow(unused_imports)] + pub(crate) use super::c::c_int as LibcFd; + #[cfg(unix)] + #[allow(unused_imports)] + pub(crate) use std::os::unix::io::RawFd as LibcFd; + #[cfg(unix)] + pub use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; + #[cfg(target_os = "wasi")] + pub use std::os::wasi::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +} + +// On Windows we emulate selected libc-compatible interfaces. On non-Windows, +// we just use libc here, since this is the libc backend. +#[cfg(windows)] +#[path = "winsock_c.rs"] +pub(crate) mod c; +#[cfg(not(windows))] +pub(crate) use libc as c; + +#[cfg(not(windows))] +#[cfg(feature = "fs")] +pub(crate) mod fs; +pub(crate) mod io; +#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg(feature = "io_uring")] +pub(crate) mod io_uring; +#[cfg(not(any(windows, target_os = "wasi")))] +#[cfg(feature = "mm")] +pub(crate) mod mm; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +#[cfg(feature = "net")] +pub(crate) mod net; +#[cfg(not(windows))] +#[cfg(any( + feature = "param", + feature = "runtime", + feature = "time", + target_arch = "x86", +))] +pub(crate) mod param; +#[cfg(not(windows))] +pub(crate) mod process; +#[cfg(not(windows))] +#[cfg(feature = "rand")] +pub(crate) mod rand; +#[cfg(not(windows))] +#[cfg(feature = "termios")] +pub(crate) mod termios; +#[cfg(not(windows))] +#[cfg(feature = "thread")] +pub(crate) mod thread; +#[cfg(not(windows))] +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() +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/addr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/addr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/addr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/addr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,330 @@ +//! IPv4, IPv6, and Socket addresses. + +use super::super::c; +#[cfg(unix)] +use crate::ffi::CStr; +#[cfg(unix)] +use crate::io; +#[cfg(unix)] +use crate::path; +#[cfg(not(windows))] +use core::convert::TryInto; +#[cfg(unix)] +use core::fmt; +#[cfg(unix)] +use core::slice; + +/// `struct sockaddr_un` +#[cfg(unix)] +#[derive(Clone)] +#[doc(alias = "sockaddr_un")] +pub struct SocketAddrUnix { + pub(crate) unix: c::sockaddr_un, + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + len: c::socklen_t, +} + +#[cfg(unix)] +impl SocketAddrUnix { + /// Construct a new Unix-domain address from a filesystem path. + #[inline] + pub fn new(path: P) -> io::Result { + path.into_with_c_str(Self::_new) + } + + #[inline] + fn _new(path: &CStr) -> io::Result { + let mut unix = Self::init(); + let bytes = path.to_bytes_with_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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + { + unix.sun_len = (offsetof_sun_path() + bytes.len()).try_into().unwrap(); + } + + Ok(Self { + unix, + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + len: (offsetof_sun_path() + bytes.len()).try_into().unwrap(), + }) + } + + /// Construct a new abstract Unix-domain address from a byte slice. + #[cfg(any(target_os = "android", target_os = "linux"))] + #[inline] + pub fn new_abstract_name(name: &[u8]) -> io::Result { + let mut unix = Self::init(); + if 1 + name.len() > unix.sun_path.len() { + return Err(io::Errno::NAMETOOLONG); + } + unix.sun_path[0] = b'\0' as c::c_char; + 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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + len, + }) + } + + fn init() -> c::sockaddr_un { + c::sockaddr_un { + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sun_len: 0, + sun_family: c::AF_UNIX as _, + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sun_path: [0; 104], + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + sun_path: [0; 108], + #[cfg(target_os = "haiku")] + sun_path: [0; 126], + } + } + + /// For a filesystem path address, return the path. + #[inline] + pub fn path(&self) -> Option<&CStr> { + let len = self.len(); + if len != 0 && self.unix.sun_path[0] != b'\0' as c::c_char { + let end = len as usize - offsetof_sun_path(); + let bytes = &self.unix.sun_path[..end]; + // Safety: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`. And + // `from_bytes_with_nul_unchecked` since the string is NUL-terminated. + unsafe { + Some(CStr::from_bytes_with_nul_unchecked(slice::from_raw_parts( + bytes.as_ptr().cast(), + bytes.len(), + ))) + } + } else { + None + } + } + + /// For an abstract address, return the identifier. + #[cfg(any(target_os = "android", target_os = "linux"))] + #[inline] + pub fn abstract_name(&self) -> Option<&[u8]> { + let len = self.len(); + if len != 0 && self.unix.sun_path[0] == b'\0' as c::c_char { + let end = len as usize - offsetof_sun_path(); + let bytes = &self.unix.sun_path[1..end]; + // Safety: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`. + unsafe { Some(slice::from_raw_parts(bytes.as_ptr().cast(), bytes.len())) } + } else { + None + } + } + + #[inline] + pub(crate) fn addr_len(&self) -> c::socklen_t { + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + { + self.len + } + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + { + c::socklen_t::from(self.unix.sun_len) + } + } + + #[inline] + pub(crate) fn len(&self) -> usize { + self.addr_len() as usize + } +} + +#[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 { + let self_len = self.len() - offsetof_sun_path(); + let other_len = other.len() - offsetof_sun_path(); + self.unix.sun_path[..self_len].partial_cmp(&other.unix.sun_path[..other_len]) + } +} + +#[cfg(unix)] +impl Ord for SocketAddrUnix { + #[inline] + fn cmp(&self, other: &Self) -> core::cmp::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 core::hash::Hash for SocketAddrUnix { + #[inline] + fn hash(&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, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + if let Some(path) = self.path() { + path.fmt(fmt) + } else { + #[cfg(any(target_os = "android", target_os = "linux"))] + if let Some(name) = self.abstract_name() { + return name.fmt(fmt); + } + + "(unnamed)".fmt(fmt) + } + } +} + +/// `struct sockaddr_storage` as a raw struct. +pub type SocketAddrStorage = c::sockaddr_storage; + +/// 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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sun_len: 0_u8, + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sun_family: 0_u8, + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + sun_family: 0_u16, + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sun_path: [0; 104], + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + sun_path: [0; 108], + #[cfg(target_os = "haiku")] + sun_path: [0; 126], + }; + (crate::utils::as_ptr(&z.sun_path) as usize) - (crate::utils::as_ptr(&z) as usize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/ext.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/ext.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/ext.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/ext.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,210 @@ +use super::super::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(not(feature = "std"))] +#[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) } +} + +// TODO: With Rust 1.55, we can use the above `in_addr_s_addr` definition that +// uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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(not(feature = "std"))] +#[cfg(windows)] +#[inline] +pub(crate) const fn in_addr_new(s_addr: u32) -> c::in_addr { + unsafe { core::mem::transmute(s_addr) } +} + +// TODO: With Rust 1.55, we can use the above `in_addr_new` definition that +// uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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(not(feature = "std"))] +#[cfg(windows)] +#[inline] +pub(crate) const fn in6_addr_s6_addr(addr: c::in6_addr) -> [u8; 16] { + unsafe { core::mem::transmute(addr) } +} + +// TODO: With Rust 1.55, we can use the above `in6_addr_s6_addr` definition +// that uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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(not(feature = "std"))] +#[cfg(windows)] +#[inline] +pub(crate) const fn in6_addr_new(s6_addr: [u8; 16]) -> c::in6_addr { + unsafe { core::mem::transmute(s6_addr) } +} + +// TODO: With Rust 1.55, we can use the above `in6_addr_new` definition that +// uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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(not(feature = "std"))] +#[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 +} + +// TODO: With Rust 1.55, we can use the above `sockaddr_in6_sin6_scope_id` +// definition that uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + 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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sin6_len, + sin6_family, + sin6_port, + sin6_flowinfo, + sin6_addr, + sin6_scope_id, + #[cfg(any(target_os = "illumos", target_os = "solaris"))] + __sin6_src_id: 0, + } +} + +#[cfg(not(feature = "std"))] +#[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) } +} + +// TODO: With Rust 1.55, we can use the above `sockaddr_in6_new` definition +// that uses a const-fn transmute. +#[cfg(feature = "std")] +#[cfg(windows)] +#[inline] +pub(crate) 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,7 @@ +pub(crate) mod addr; +pub(crate) mod ext; +pub(crate) mod read_sockaddr; +pub(crate) mod send_recv; +pub(crate) mod syscalls; +pub(crate) mod types; +pub(crate) mod write_sockaddr; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/read_sockaddr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/read_sockaddr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/read_sockaddr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/read_sockaddr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,255 @@ +use super::super::c; +#[cfg(unix)] +use super::addr::SocketAddrUnix; +use super::ext::{in6_addr_s6_addr, in_addr_s_addr, sockaddr_in6_sin6_scope_id}; +#[cfg(not(windows))] +use crate::ffi::CStr; +use crate::io; +use crate::net::{Ipv4Addr, Ipv6Addr, SocketAddrAny, SocketAddrV4, SocketAddrV6}; +#[cfg(not(windows))] +use alloc::vec::Vec; +use core::mem::size_of; + +// This must match the header of `sockaddr`. +#[repr(C)] +struct sockaddr_header { + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sa_len: u8, + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + ss_family: u8, + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + ss_family: u16, +} + +#[inline] +unsafe fn read_ss_family(storage: *const c::sockaddr_storage) -> u16 { + // Assert that we know the layout of `sockaddr`. + let _ = c::sockaddr { + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sa_len: 0_u8, + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sa_family: 0_u8, + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + sa_family: 0_u16, + #[cfg(not(target_os = "haiku"))] + sa_data: [0; 14], + #[cfg(target_os = "haiku")] + sa_data: [0; 30], + }; + + (*storage.cast::()).ss_family.into() +} + +/// Set the `ss_family` field of a socket address to `AF_UNSPEC`, so that we +/// can test for `AF_UNSPEC` to test whether it was stored to. +pub(crate) unsafe fn initialize_family_to_unspec(storage: *mut c::sockaddr_storage) { + (*storage.cast::()).ss_family = c::AF_UNSPEC as _; +} + +pub(crate) unsafe fn read_sockaddr( + storage: *const c::sockaddr_storage, + len: usize, +) -> io::Result { + #[cfg(unix)] + let offsetof_sun_path = super::addr::offsetof_sun_path(); + + if len < size_of::() { + return Err(io::Errno::INVAL); + } + match read_ss_family(storage).into() { + c::AF_INET => { + if len < size_of::() { + return Err(io::Errno::INVAL); + } + let decode = *storage.cast::(); + Ok(SocketAddrAny::V4(SocketAddrV4::new( + Ipv4Addr::from(u32::from_be(in_addr_s_addr(decode.sin_addr))), + u16::from_be(decode.sin_port), + ))) + } + c::AF_INET6 => { + if len < size_of::() { + return Err(io::Errno::INVAL); + } + let decode = *storage.cast::(); + #[cfg(not(windows))] + let s6_addr = decode.sin6_addr.s6_addr; + #[cfg(windows)] + let s6_addr = decode.sin6_addr.u.Byte; + #[cfg(not(windows))] + let sin6_scope_id = decode.sin6_scope_id; + #[cfg(windows)] + let sin6_scope_id = decode.Anonymous.sin6_scope_id; + Ok(SocketAddrAny::V6(SocketAddrV6::new( + Ipv6Addr::from(s6_addr), + u16::from_be(decode.sin6_port), + u32::from_be(decode.sin6_flowinfo), + sin6_scope_id, + ))) + } + #[cfg(unix)] + c::AF_UNIX => { + if len < offsetof_sun_path { + return Err(io::Errno::INVAL); + } + if len == offsetof_sun_path { + Ok(SocketAddrAny::Unix(SocketAddrUnix::new(&[][..]).unwrap())) + } else { + let decode = *storage.cast::(); + + // Trim off unused bytes from the end of `path_bytes`. + let path_bytes = if cfg!(target_os = "freebsd") { + // FreeBSD sometimes sets 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).unwrap()] + } else { + // Otherwise, use the provided length. + let provided_len = len - 1 - offsetof_sun_path; + if decode.sun_path[provided_len] != b'\0' as c::c_char { + return Err(io::Errno::INVAL); + } + debug_assert_eq!( + CStr::from_ptr(decode.sun_path.as_ptr()).to_bytes().len(), + provided_len + ); + &decode.sun_path[..provided_len] + }; + + Ok(SocketAddrAny::Unix( + SocketAddrUnix::new(path_bytes.iter().map(|c| *c as u8).collect::>()) + .unwrap(), + )) + } + } + _ => Err(io::Errno::INVAL), + } +} + +pub(crate) unsafe fn maybe_read_sockaddr_os( + storage: *const c::sockaddr_storage, + len: usize, +) -> Option { + if len == 0 { + return None; + } + + assert!(len >= size_of::()); + let family = read_ss_family(storage).into(); + if family == c::AF_UNSPEC { + None + } else { + Some(inner_read_sockaddr_os(family, storage, len)) + } +} + +pub(crate) unsafe fn read_sockaddr_os( + storage: *const c::sockaddr_storage, + len: usize, +) -> SocketAddrAny { + assert!(len >= size_of::()); + let family = read_ss_family(storage).into(); + inner_read_sockaddr_os(family, storage, len) +} + +unsafe fn inner_read_sockaddr_os( + family: c::c_int, + storage: *const c::sockaddr_storage, + len: usize, +) -> SocketAddrAny { + #[cfg(unix)] + let offsetof_sun_path = super::addr::offsetof_sun_path(); + + assert!(len >= size_of::()); + match family { + c::AF_INET => { + assert!(len >= size_of::()); + let decode = *storage.cast::(); + SocketAddrAny::V4(SocketAddrV4::new( + Ipv4Addr::from(u32::from_be(in_addr_s_addr(decode.sin_addr))), + u16::from_be(decode.sin_port), + )) + } + c::AF_INET6 => { + assert!(len >= size_of::()); + let decode = *storage.cast::(); + SocketAddrAny::V6(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)] + c::AF_UNIX => { + assert!(len >= offsetof_sun_path); + if len == offsetof_sun_path { + SocketAddrAny::Unix(SocketAddrUnix::new(&[][..]).unwrap()) + } else { + let decode = *storage.cast::(); + assert_eq!( + decode.sun_path[len - 1 - offsetof_sun_path], + b'\0' as c::c_char + ); + let path_bytes = &decode.sun_path[..len - 1 - offsetof_sun_path]; + + // FreeBSD sometimes sets the length to longer than the length + // of the NUL-terminated string. Find the NUL and truncate the + // string accordingly. + #[cfg(target_os = "freebsd")] + let path_bytes = &path_bytes[..path_bytes.iter().position(|b| *b == 0).unwrap()]; + + SocketAddrAny::Unix( + SocketAddrUnix::new(path_bytes.iter().map(|c| *c as u8).collect::>()) + .unwrap(), + ) + } + } + other => unimplemented!("{:?}", other), + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/send_recv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/send_recv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/send_recv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/send_recv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,83 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `MSG_*` + pub struct SendFlags: i32 { + /// `MSG_CONFIRM` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + const CONFIRM = c::MSG_CONFIRM; + /// `MSG_DONTROUTE` + const DONTROUTE = c::MSG_DONTROUTE; + /// `MSG_DONTWAIT` + #[cfg(not(windows))] + const DONTWAIT = c::MSG_DONTWAIT; + /// `MSG_EOR` + #[cfg(not(windows))] + const EOT = c::MSG_EOR; + /// `MSG_MORE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + const MORE = c::MSG_MORE; + #[cfg(not(any(windows, target_os = "ios", target_os = "macos")))] + /// `MSG_NOSIGNAL` + const NOSIGNAL = c::MSG_NOSIGNAL; + /// `MSG_OOB` + const OOB = c::MSG_OOB; + } +} + +bitflags! { + /// `MSG_*` + pub struct RecvFlags: i32 { + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "ios", target_os = "macos", target_os = "solaris")))] + /// `MSG_CMSG_CLOEXEC` + const CMSG_CLOEXEC = c::MSG_CMSG_CLOEXEC; + /// `MSG_DONTWAIT` + #[cfg(not(windows))] + const DONTWAIT = c::MSG_DONTWAIT; + /// `MSG_ERRQUEUE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + 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 as c::c_int; + /// `MSG_WAITALL` + const WAITALL = c::MSG_WAITALL; + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,887 @@ +//! libc syscalls supporting `rustix::net`. + +use super::super::c; +use super::super::conv::{borrowed_fd, ret, ret_owned_fd, ret_send_recv, send_recv_len}; +#[cfg(unix)] +use super::addr::SocketAddrUnix; +use super::ext::{in6_addr_new, in_addr_new}; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use super::read_sockaddr::initialize_family_to_unspec; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use super::read_sockaddr::{maybe_read_sockaddr_os, read_sockaddr_os}; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use super::send_recv::{RecvFlags, SendFlags}; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use super::types::{AcceptFlags, AddressFamily, Protocol, Shutdown, SocketFlags, SocketType}; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use super::write_sockaddr::{encode_sockaddr_v4, encode_sockaddr_v6}; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::io; +use crate::net::{SocketAddrAny, SocketAddrV4, SocketAddrV6}; +use crate::utils::as_ptr; +use core::convert::TryInto; +use core::mem::{size_of, MaybeUninit}; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +use core::ptr::null_mut; + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn recv(fd: BorrowedFd<'_>, buf: &mut [u8], flags: RecvFlags) -> io::Result { + let nrecv = unsafe { + ret_send_recv(c::recv( + borrowed_fd(fd), + buf.as_mut_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + ))? + }; + Ok(nrecv as usize) +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn send(fd: BorrowedFd<'_>, buf: &[u8], flags: SendFlags) -> io::Result { + let nwritten = unsafe { + ret_send_recv(c::send( + borrowed_fd(fd), + buf.as_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn recvfrom( + fd: BorrowedFd<'_>, + buf: &mut [u8], + flags: RecvFlags, +) -> io::Result<(usize, Option)> { + unsafe { + let mut storage = MaybeUninit::::uninit(); + let mut len = size_of::() as c::socklen_t; + + // `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(storage.as_mut_ptr()); + + let nread = ret_send_recv(c::recvfrom( + borrowed_fd(fd), + buf.as_mut_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + storage.as_mut_ptr().cast(), + &mut len, + ))?; + Ok(( + nread as usize, + maybe_read_sockaddr_os(storage.as_ptr(), len.try_into().unwrap()), + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn sendto_v4( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV4, +) -> io::Result { + let nwritten = unsafe { + ret_send_recv(c::sendto( + borrowed_fd(fd), + buf.as_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + as_ptr(&encode_sockaddr_v4(addr)).cast::(), + size_of::() as _, + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn sendto_v6( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV6, +) -> io::Result { + let nwritten = unsafe { + ret_send_recv(c::sendto( + borrowed_fd(fd), + buf.as_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + as_ptr(&encode_sockaddr_v6(addr)).cast::(), + size_of::() as _, + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))] +pub(crate) fn sendto_unix( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrUnix, +) -> io::Result { + let nwritten = unsafe { + ret_send_recv(c::sendto( + borrowed_fd(fd), + buf.as_ptr().cast(), + send_recv_len(buf.len()), + flags.bits(), + as_ptr(&addr.unix).cast(), + addr.addr_len(), + ))? + }; + Ok(nwritten as usize) +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn socket( + domain: AddressFamily, + type_: SocketType, + protocol: Protocol, +) -> io::Result { + unsafe { + ret_owned_fd(c::socket( + domain.0 as c::c_int, + type_.0 as c::c_int, + protocol.0, + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn socket_with( + domain: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: Protocol, +) -> io::Result { + unsafe { + ret_owned_fd(c::socket( + domain.0 as c::c_int, + type_.0 as c::c_int | flags.bits(), + protocol.0, + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn bind_v4(sockfd: BorrowedFd<'_>, addr: &SocketAddrV4) -> io::Result<()> { + unsafe { + ret(c::bind( + borrowed_fd(sockfd), + as_ptr(&encode_sockaddr_v4(addr)).cast(), + size_of::() as c::socklen_t, + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn bind_v6(sockfd: BorrowedFd<'_>, addr: &SocketAddrV6) -> io::Result<()> { + unsafe { + ret(c::bind( + borrowed_fd(sockfd), + as_ptr(&encode_sockaddr_v6(addr)).cast(), + size_of::() as c::socklen_t, + )) + } +} + +#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))] +pub(crate) fn bind_unix(sockfd: BorrowedFd<'_>, addr: &SocketAddrUnix) -> io::Result<()> { + unsafe { + ret(c::bind( + borrowed_fd(sockfd), + as_ptr(&addr.unix).cast(), + addr.addr_len(), + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn connect_v4(sockfd: BorrowedFd<'_>, addr: &SocketAddrV4) -> io::Result<()> { + unsafe { + ret(c::connect( + borrowed_fd(sockfd), + as_ptr(&encode_sockaddr_v4(addr)).cast(), + size_of::() as c::socklen_t, + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn connect_v6(sockfd: BorrowedFd<'_>, addr: &SocketAddrV6) -> io::Result<()> { + unsafe { + ret(c::connect( + borrowed_fd(sockfd), + as_ptr(&encode_sockaddr_v6(addr)).cast(), + size_of::() as c::socklen_t, + )) + } +} + +#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))] +pub(crate) fn connect_unix(sockfd: BorrowedFd<'_>, addr: &SocketAddrUnix) -> io::Result<()> { + unsafe { + ret(c::connect( + borrowed_fd(sockfd), + as_ptr(&addr.unix).cast(), + addr.addr_len(), + )) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn listen(sockfd: BorrowedFd<'_>, backlog: c::c_int) -> io::Result<()> { + unsafe { ret(c::listen(borrowed_fd(sockfd), backlog)) } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn accept(sockfd: BorrowedFd<'_>) -> io::Result { + 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 = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +pub(crate) fn accept_with(sockfd: BorrowedFd<'_>, flags: AcceptFlags) -> io::Result { + unsafe { + let owned_fd = ret_owned_fd(c::accept4( + borrowed_fd(sockfd), + null_mut(), + null_mut(), + flags.bits(), + ))?; + Ok(owned_fd) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn acceptfrom(sockfd: BorrowedFd<'_>) -> io::Result<(OwnedFd, Option)> { + unsafe { + let mut storage = MaybeUninit::::uninit(); + let mut len = size_of::() as c::socklen_t; + let owned_fd = ret_owned_fd(c::accept( + borrowed_fd(sockfd), + storage.as_mut_ptr().cast(), + &mut len, + ))?; + Ok(( + owned_fd, + maybe_read_sockaddr_os(storage.as_ptr(), len.try_into().unwrap()), + )) + } +} + +#[cfg(not(any( + windows, + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +pub(crate) fn acceptfrom_with( + sockfd: BorrowedFd<'_>, + flags: AcceptFlags, +) -> io::Result<(OwnedFd, Option)> { + unsafe { + let mut storage = MaybeUninit::::uninit(); + let mut len = size_of::() as c::socklen_t; + let owned_fd = ret_owned_fd(c::accept4( + borrowed_fd(sockfd), + storage.as_mut_ptr().cast(), + &mut len, + flags.bits(), + ))?; + Ok(( + owned_fd, + maybe_read_sockaddr_os(storage.as_ptr(), len.try_into().unwrap()), + )) + } +} + +/// Darwin lacks `accept4`, but does have `accept`. We define +/// `AcceptFlags` to have no flags, so we can discard it here. +#[cfg(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos"))] +pub(crate) fn accept_with(sockfd: BorrowedFd<'_>, _flags: AcceptFlags) -> io::Result { + accept(sockfd) +} + +/// Darwin lacks `accept4`, but does have `accept`. We define +/// `AcceptFlags` to have no flags, so we can discard it here. +#[cfg(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos"))] +pub(crate) fn acceptfrom_with( + sockfd: BorrowedFd<'_>, + _flags: AcceptFlags, +) -> io::Result<(OwnedFd, Option)> { + acceptfrom(sockfd) +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn shutdown(sockfd: BorrowedFd<'_>, how: Shutdown) -> io::Result<()> { + unsafe { ret(c::shutdown(borrowed_fd(sockfd), how as c::c_int)) } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn getsockname(sockfd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut storage = MaybeUninit::::uninit(); + let mut len = size_of::() as c::socklen_t; + ret(c::getsockname( + borrowed_fd(sockfd), + storage.as_mut_ptr().cast(), + &mut len, + ))?; + Ok(read_sockaddr_os(storage.as_ptr(), len.try_into().unwrap())) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) fn getpeername(sockfd: BorrowedFd<'_>) -> io::Result> { + unsafe { + let mut storage = MaybeUninit::::uninit(); + let mut len = size_of::() as c::socklen_t; + ret(c::getpeername( + borrowed_fd(sockfd), + storage.as_mut_ptr().cast(), + &mut len, + ))?; + Ok(maybe_read_sockaddr_os( + storage.as_ptr(), + len.try_into().unwrap(), + )) + } +} + +#[cfg(not(any(windows, target_os = "redox", target_os = "wasi")))] +pub(crate) fn socketpair( + domain: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: Protocol, +) -> io::Result<(OwnedFd, OwnedFd)> { + unsafe { + let mut fds = MaybeUninit::<[OwnedFd; 2]>::uninit(); + ret(c::socketpair( + c::c_int::from(domain.0), + type_.0 as c::c_int | flags.bits(), + protocol.0, + fds.as_mut_ptr().cast::(), + ))?; + + let [fd0, fd1] = fds.assume_init(); + Ok((fd0, fd1)) + } +} + +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub(crate) mod sockopt { + use super::{c, in6_addr_new, in_addr_new, BorrowedFd}; + use crate::io; + use crate::net::sockopt::Timeout; + use crate::net::{Ipv4Addr, Ipv6Addr, SocketType}; + use crate::utils::as_mut_ptr; + use core::convert::TryInto; + use core::time::Duration; + #[cfg(windows)] + use windows_sys::Win32::Foundation::BOOL; + + // TODO: With Rust 1.53 we can use `Duration::ZERO` instead. + const DURATION_ZERO: Duration = Duration::from_secs(0); + + #[inline] + fn getsockopt(fd: BorrowedFd<'_>, level: i32, optname: i32) -> io::Result { + use super::*; + + let mut optlen = core::mem::size_of::().try_into().unwrap(); + debug_assert!( + optlen as usize >= core::mem::size_of::(), + "Socket APIs don't ever use `bool` directly" + ); + + unsafe { + let mut value = core::mem::zeroed::(); + ret(c::getsockopt( + borrowed_fd(fd), + level, + optname, + as_mut_ptr(&mut value).cast(), + &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::(), + "unexpected getsockopt size" + ); + Ok(value) + } + } + + #[inline] + fn setsockopt( + fd: BorrowedFd<'_>, + level: i32, + optname: i32, + value: T, + ) -> io::Result<()> { + use super::*; + + let optlen = core::mem::size_of::().try_into().unwrap(); + debug_assert!( + optlen as usize >= core::mem::size_of::(), + "Socket APIs don't ever use `bool` directly" + ); + + unsafe { + ret(c::setsockopt( + borrowed_fd(fd), + level, + optname, + as_ptr(&value).cast(), + optlen, + )) + } + } + + #[inline] + pub(crate) fn get_socket_type(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_TYPE) + } + + #[inline] + pub(crate) fn set_socket_reuseaddr(fd: BorrowedFd<'_>, reuseaddr: bool) -> io::Result<()> { + setsockopt( + fd, + c::SOL_SOCKET as _, + c::SO_REUSEADDR, + from_bool(reuseaddr), + ) + } + + #[inline] + pub(crate) fn set_socket_broadcast(fd: BorrowedFd<'_>, broadcast: bool) -> io::Result<()> { + setsockopt( + fd, + c::SOL_SOCKET as _, + c::SO_BROADCAST, + from_bool(broadcast), + ) + } + + #[inline] + pub(crate) fn get_socket_broadcast(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_BROADCAST).map(to_bool) + } + + #[inline] + pub(crate) fn set_socket_linger( + fd: BorrowedFd<'_>, + linger: Option, + ) -> io::Result<()> { + // Convert `linger` to seconds, rounding up. + let l_linger = if let Some(linger) = linger { + let mut l_linger = linger.as_secs(); + if linger.subsec_nanos() != 0 { + l_linger = l_linger.checked_add(1).ok_or(io::Errno::INVAL)?; + } + l_linger.try_into().map_err(|_e| io::Errno::INVAL)? + } else { + 0 + }; + let linger = c::linger { + l_onoff: linger.is_some() as _, + l_linger, + }; + setsockopt(fd, c::SOL_SOCKET as _, c::SO_LINGER, linger) + } + + #[inline] + pub(crate) fn get_socket_linger(fd: BorrowedFd<'_>) -> io::Result> { + let linger: c::linger = getsockopt(fd, c::SOL_SOCKET as _, c::SO_LINGER)?; + // TODO: With Rust 1.50, this could use `.then`. + Ok(if linger.l_onoff != 0 { + Some(Duration::from_secs(linger.l_linger as u64)) + } else { + None + }) + } + + #[cfg(any(target_os = "android", target_os = "linux"))] + #[inline] + pub(crate) fn set_socket_passcred(fd: BorrowedFd<'_>, passcred: bool) -> io::Result<()> { + setsockopt(fd, c::SOL_SOCKET as _, c::SO_PASSCRED, from_bool(passcred)) + } + + #[cfg(any(target_os = "android", target_os = "linux"))] + #[inline] + pub(crate) fn get_socket_passcred(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_PASSCRED).map(to_bool) + } + + #[inline] + pub(crate) fn set_socket_timeout( + fd: BorrowedFd<'_>, + id: Timeout, + timeout: Option, + ) -> 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 get_socket_timeout( + fd: BorrowedFd<'_>, + id: Timeout, + ) -> io::Result> { + 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))) + } + } + } + + #[inline] + pub(crate) fn set_ip_ttl(fd: BorrowedFd<'_>, ttl: u32) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_IP as _, c::IP_TTL, ttl) + } + + #[inline] + pub(crate) fn get_ip_ttl(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IP_TTL) + } + + #[inline] + pub(crate) fn set_ipv6_v6only(fd: BorrowedFd<'_>, only_v6: bool) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_IPV6 as _, c::IPV6_V6ONLY, from_bool(only_v6)) + } + + #[inline] + pub(crate) fn get_ipv6_v6only(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IPV6 as _, c::IPV6_V6ONLY).map(to_bool) + } + + #[inline] + pub(crate) fn set_ip_multicast_loop( + fd: BorrowedFd<'_>, + multicast_loop: bool, + ) -> io::Result<()> { + setsockopt( + fd, + c::IPPROTO_IP as _, + c::IP_MULTICAST_LOOP, + from_bool(multicast_loop), + ) + } + + #[inline] + pub(crate) fn get_ip_multicast_loop(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, 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 as _, c::IP_MULTICAST_TTL, multicast_ttl) + } + + #[inline] + pub(crate) fn get_ip_multicast_ttl(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IP_MULTICAST_TTL) + } + + #[inline] + pub(crate) fn set_ipv6_multicast_loop( + fd: BorrowedFd<'_>, + multicast_loop: bool, + ) -> io::Result<()> { + setsockopt( + fd, + c::IPPROTO_IPV6 as _, + c::IPV6_MULTICAST_LOOP, + from_bool(multicast_loop), + ) + } + + #[inline] + pub(crate) fn get_ipv6_multicast_loop(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IPV6 as _, 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 as _, + c::IPV6_MULTICAST_LOOP, + multicast_hops, + ) + } + + #[inline] + pub(crate) fn get_ipv6_multicast_hops(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IPV6_MULTICAST_LOOP) + } + + #[inline] + pub(crate) fn set_ip_add_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, + ) -> io::Result<()> { + let mreq = to_imr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IP as _, c::IP_ADD_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_ipv6_add_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv6Addr, + interface: u32, + ) -> io::Result<()> { + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + use c::IPV6_ADD_MEMBERSHIP; + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + ))] + use c::IPV6_JOIN_GROUP as IPV6_ADD_MEMBERSHIP; + + let mreq = to_ipv6mr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IPV6 as _, IPV6_ADD_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_ip_drop_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, + ) -> io::Result<()> { + let mreq = to_imr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IP as _, c::IP_DROP_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_ipv6_drop_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv6Addr, + interface: u32, + ) -> io::Result<()> { + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + use c::IPV6_DROP_MEMBERSHIP; + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + ))] + use c::IPV6_LEAVE_GROUP as IPV6_DROP_MEMBERSHIP; + + let mreq = to_ipv6mr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IPV6 as _, IPV6_DROP_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_tcp_nodelay(fd: BorrowedFd<'_>, nodelay: bool) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_TCP as _, c::TCP_NODELAY, from_bool(nodelay)) + } + + #[inline] + pub(crate) fn get_tcp_nodelay(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_TCP as _, c::TCP_NODELAY).map(to_bool) + } + + #[inline] + fn to_imr(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_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. + #[cfg(not(windows))] + type RawSocketBool = c::c_int; + #[cfg(windows)] + type RawSocketBool = BOOL; + + // 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 as _) + } + + // Convert from a `SocketBool` to a `bool`. + #[inline] + fn to_bool(value: SocketBool) -> bool { + value.0 != 0 + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,687 @@ +use super::super::c; +use bitflags::bitflags; + +/// A type for holding raw integer socket types. +#[doc(hidden)] +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 u32); + + /// `SOCK_DGRAM` + pub const DGRAM: Self = Self(c::SOCK_DGRAM as u32); + + /// `SOCK_SEQPACKET` + pub const SEQPACKET: Self = Self(c::SOCK_SEQPACKET as u32); + + /// `SOCK_RAW` + pub const RAW: Self = Self(c::SOCK_RAW as u32); + + /// `SOCK_RDM` + #[cfg(not(target_os = "haiku"))] + pub const RDM: Self = Self(c::SOCK_RDM as u32); + + /// 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. +#[doc(hidden)] +pub type RawAddressFamily = c::sa_family_t; + +/// `AF_*` constants. +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(transparent)] +pub struct AddressFamily(pub(crate) RawAddressFamily); + +#[rustfmt::skip] +impl AddressFamily { + /// `AF_UNSPEC` + pub const UNSPEC: Self = Self(c::AF_UNSPEC as _); + /// `AF_INET` + pub const INET: Self = Self(c::AF_INET as _); + /// `AF_INET6` + pub const INET6: Self = Self(c::AF_INET6 as _); + /// `AF_NETLINK` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + 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( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const AX25: Self = Self(c::AF_AX25 as _); + /// `AF_IPX` + pub const IPX: Self = Self(c::AF_IPX as _); + /// `AF_APPLETALK` + pub const APPLETALK: Self = Self(c::AF_APPLETALK as _); + /// `AF_NETROM` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const NETROM: Self = Self(c::AF_NETROM as _); + /// `AF_BRIDGE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const BRIDGE: Self = Self(c::AF_BRIDGE as _); + /// `AF_ATMPVC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const ATMPVC: Self = Self(c::AF_ATMPVC as _); + /// `AF_X25` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + pub const X25: Self = Self(c::AF_X25 as _); + /// `AF_ROSE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const ROSE: Self = Self(c::AF_ROSE as _); + /// `AF_DECnet` + #[allow(non_upper_case_globals)] + #[cfg(not(target_os = "haiku"))] + pub const DECnet: Self = Self(c::AF_DECnet as _); + /// `AF_NETBEUI` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const NETBEUI: Self = Self(c::AF_NETBEUI as _); + /// `AF_SECURITY` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const SECURITY: Self = Self(c::AF_SECURITY as _); + /// `AF_KEY` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + pub const KEY: Self = Self(c::AF_KEY as _); + /// `AF_PACKET` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + pub const PACKET: Self = Self(c::AF_PACKET as _); + /// `AF_ASH` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const ASH: Self = Self(c::AF_ASH as _); + /// `AF_ECONET` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const ECONET: Self = Self(c::AF_ECONET as _); + /// `AF_ATMSVC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const ATMSVC: Self = Self(c::AF_ATMSVC as _); + /// `AF_RDS` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const RDS: Self = Self(c::AF_RDS as _); + /// `AF_SNA` + #[cfg(not(target_os = "haiku"))] + pub const SNA: Self = Self(c::AF_SNA as _); + /// `AF_IRDA` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const IRDA: Self = Self(c::AF_IRDA as _); + /// `AF_PPPOX` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const PPPOX: Self = Self(c::AF_PPPOX as _); + /// `AF_WANPIPE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const WANPIPE: Self = Self(c::AF_WANPIPE as _); + /// `AF_LLC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const LLC: Self = Self(c::AF_LLC as _); + /// `AF_CAN` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const CAN: Self = Self(c::AF_CAN as _); + /// `AF_TIPC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const TIPC: Self = Self(c::AF_TIPC as _); + /// `AF_BLUETOOTH` + #[cfg(not(any(windows, target_os = "illumos", target_os = "ios", target_os = "macos", target_os = "solaris")))] + pub const BLUETOOTH: Self = Self(c::AF_BLUETOOTH as _); + /// `AF_IUCV` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const IUCV: Self = Self(c::AF_IUCV as _); + /// `AF_RXRPC` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const RXRPC: Self = Self(c::AF_RXRPC as _); + /// `AF_ISDN` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const ISDN: Self = Self(c::AF_ISDN as _); + /// `AF_PHONET` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const PHONET: Self = Self(c::AF_PHONET as _); + /// `AF_IEEE802154` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const IEEE802154: Self = Self(c::AF_IEEE802154 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. +#[doc(hidden)] +pub type RawProtocol = i32; + +/// `IPPROTO_*` +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(transparent)] +pub struct Protocol(pub(crate) RawProtocol); + +#[rustfmt::skip] +impl Protocol { + /// `IPPROTO_IP` + pub const IP: Self = Self(c::IPPROTO_IP as _); + /// `IPPROTO_ICMP` + pub const ICMP: Self = Self(c::IPPROTO_ICMP as _); + /// `IPPROTO_IGMP` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const IGMP: Self = Self(c::IPPROTO_IGMP as _); + /// `IPPROTO_IPIP` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const IPIP: Self = Self(c::IPPROTO_IPIP as _); + /// `IPPROTO_TCP` + pub const TCP: Self = Self(c::IPPROTO_TCP as _); + /// `IPPROTO_EGP` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const EGP: Self = Self(c::IPPROTO_EGP as _); + /// `IPPROTO_PUP` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const PUP: Self = Self(c::IPPROTO_PUP as _); + /// `IPPROTO_UDP` + pub const UDP: Self = Self(c::IPPROTO_UDP as _); + /// `IPPROTO_IDP` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const IDP: Self = Self(c::IPPROTO_IDP as _); + /// `IPPROTO_TP` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const TP: Self = Self(c::IPPROTO_TP as _); + /// `IPPROTO_DCCP` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const DCCP: Self = Self(c::IPPROTO_DCCP as _); + /// `IPPROTO_IPV6` + pub const IPV6: Self = Self(c::IPPROTO_IPV6 as _); + /// `IPPROTO_RSVP` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const RSVP: Self = Self(c::IPPROTO_RSVP as _); + /// `IPPROTO_GRE` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const GRE: Self = Self(c::IPPROTO_GRE as _); + /// `IPPROTO_ESP` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const ESP: Self = Self(c::IPPROTO_ESP as _); + /// `IPPROTO_AH` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const AH: Self = Self(c::IPPROTO_AH as _); + /// `IPPROTO_MTP` + #[cfg(not(any( + windows, + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const MTP: Self = Self(c::IPPROTO_MTP as _); + /// `IPPROTO_BEETPH` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const BEETPH: Self = Self(c::IPPROTO_BEETPH as _); + /// `IPPROTO_ENCAP` + #[cfg(not(any(windows, target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const ENCAP: Self = Self(c::IPPROTO_ENCAP as _); + /// `IPPROTO_PIM` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const PIM: Self = Self(c::IPPROTO_PIM as _); + /// `IPPROTO_COMP` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const COMP: Self = Self(c::IPPROTO_COMP as _); + /// `IPPROTO_SCTP` + #[cfg(not(any(target_os = "dragonfly", target_os = "haiku", target_os = "illumos", target_os = "openbsd", target_os = "solaris")))] + pub const SCTP: Self = Self(c::IPPROTO_SCTP as _); + /// `IPPROTO_UDPLITE` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const UDPLITE: Self = Self(c::IPPROTO_UDPLITE as _); + /// `IPPROTO_MPLS` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "solaris", + )))] + pub const MPLS: Self = Self(c::IPPROTO_MPLS as _); + /// `IPPROTO_RAW` + pub const RAW: Self = Self(c::IPPROTO_RAW as _); + /// `IPPROTO_MPTCP` + #[cfg(not(any( + windows, + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const MPTCP: Self = Self(c::IPPROTO_MPTCP as _); + /// `IPPROTO_FRAGMENT` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const FRAGMENT: Self = Self(c::IPPROTO_FRAGMENT as _); + /// `IPPROTO_ICMPV6` + pub const ICMPV6: Self = Self(c::IPPROTO_ICMPV6 as _); + /// `IPPROTO_MH` + #[cfg(not(any( + windows, + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + pub const MH: Self = Self(c::IPPROTO_MH as _); + /// `IPPROTO_ROUTING` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + pub const ROUTING: Self = Self(c::IPPROTO_ROUTING as _); + + /// 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(i32)] +pub enum Shutdown { + /// `SHUT_RD`—Disable further read operations. + Read = c::SHUT_RD, + /// `SHUT_WR`—Disable further write operations. + Write = c::SHUT_WR, + /// `SHUT_RDWR`—Disable further read and write operations. + ReadWrite = c::SHUT_RDWR, +} + +bitflags! { + /// `SOCK_*` constants for use with [`accept_with`] and [`acceptfrom_with`]. + /// + /// [`accept_with`]: crate::net::accept_with + /// [`acceptfrom_with`]: crate::net::acceptfrom_with + pub struct AcceptFlags: c::c_int { + /// `SOCK_NONBLOCK` + #[cfg(not(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos")))] + const NONBLOCK = c::SOCK_NONBLOCK; + + /// `SOCK_CLOEXEC` + #[cfg(not(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos")))] + const CLOEXEC = c::SOCK_CLOEXEC; + } +} + +bitflags! { + /// `SOCK_*` constants for use with [`socket`]. + /// + /// [`socket`]: crate::net::socket + pub struct SocketFlags: c::c_int { + /// `SOCK_NONBLOCK` + #[cfg(not(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos")))] + const NONBLOCK = c::SOCK_NONBLOCK; + + /// `SOCK_CLOEXEC` + #[cfg(not(any(windows, target_os = "haiku", target_os = "ios", target_os = "macos")))] + const CLOEXEC = c::SOCK_CLOEXEC; + } +} + +/// Timeout identifier for use with [`set_socket_timeout`] and +/// [`get_socket_timeout`]. +/// +/// [`set_socket_timeout`]: crate::net::sockopt::set_socket_timeout. +/// [`get_socket_timeout`]: crate::net::sockopt::get_socket_timeout. +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(i32)] +pub enum Timeout { + /// `SO_RCVTIMEO`—Timeout for receiving. + Recv = c::SO_RCVTIMEO, + + /// `SO_SNDTIMEO`—Timeout for sending. + Send = c::SO_SNDTIMEO, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/write_sockaddr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/write_sockaddr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/write_sockaddr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/net/write_sockaddr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,102 @@ +//! The BSD sockets API requires us to read the `ss_family` field before +//! we can interpret the rest of a `sockaddr` produced by the kernel. + +use super::super::c; +use super::addr::SocketAddrStorage; +#[cfg(unix)] +use super::addr::SocketAddrUnix; +use super::ext::{in6_addr_new, in_addr_new, sockaddr_in6_new}; +use crate::net::{SocketAddrAny, SocketAddrV4, SocketAddrV6}; +use core::mem::size_of; + +pub(crate) unsafe fn write_sockaddr( + addr: &SocketAddrAny, + storage: *mut SocketAddrStorage, +) -> usize { + match addr { + SocketAddrAny::V4(v4) => write_sockaddr_v4(v4, storage), + SocketAddrAny::V6(v6) => write_sockaddr_v6(v6, storage), + #[cfg(unix)] + SocketAddrAny::Unix(unix) => write_sockaddr_unix(unix, storage), + } +} + +pub(crate) unsafe fn encode_sockaddr_v4(v4: &SocketAddrV4) -> c::sockaddr_in { + c::sockaddr_in { + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + sin_len: size_of::() 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(target_os = "haiku"))] + sin_zero: [0; 8_usize], + #[cfg(target_os = "haiku")] + sin_zero: [0; 24_usize], + } +} + +unsafe fn write_sockaddr_v4(v4: &SocketAddrV4, storage: *mut SocketAddrStorage) -> usize { + let encoded = encode_sockaddr_v4(v4); + core::ptr::write(storage.cast(), encoded); + size_of::() +} + +pub(crate) unsafe fn encode_sockaddr_v6(v6: &SocketAddrV6) -> c::sockaddr_in6 { + #[cfg(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + ))] + { + sockaddr_in6_new( + size_of::() 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( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + { + 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(), + ) + } +} + +unsafe fn write_sockaddr_v6(v6: &SocketAddrV6, storage: *mut SocketAddrStorage) -> usize { + let encoded = encode_sockaddr_v6(v6); + core::ptr::write(storage.cast(), encoded); + size_of::() +} + +#[cfg(unix)] +unsafe fn write_sockaddr_unix(unix: &SocketAddrUnix, storage: *mut SocketAddrStorage) -> usize { + core::ptr::write(storage.cast(), unix.unix); + unix.len() +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/offset.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/offset.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/offset.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/offset.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,406 @@ +//! Automatically enable “large file” support features. + +#[cfg(not(windows))] +use super::c; + +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +)))] +#[cfg(feature = "fs")] +pub(super) use c::{ + fstat as libc_fstat, fstatat as libc_fstatat, ftruncate as libc_ftruncate, lseek as libc_lseek, + off_t as libc_off_t, +}; + +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +))] +#[cfg(feature = "fs")] +pub(super) use c::{ + fstat64 as libc_fstat, fstatat64 as libc_fstatat, ftruncate64 as libc_ftruncate, + lseek64 as libc_lseek, off64_t as libc_off_t, +}; + +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", +))] +pub(super) use c::rlimit64 as libc_rlimit; + +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", + target_os = "wasi", +)))] +#[cfg(feature = "mm")] +pub(super) use c::mmap as libc_mmap; + +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "l4re", + target_os = "linux", + target_os = "redox", + target_os = "wasi", +)))] +pub(super) use c::{rlimit as libc_rlimit, RLIM_INFINITY as LIBC_RLIM_INFINITY}; + +#[cfg(not(any( + windows, + target_os = "android", + target_os = "fuchsia", + target_os = "emscripten", + target_os = "l4re", + target_os = "linux", + target_os = "wasi", +)))] +pub(super) use c::{getrlimit as libc_getrlimit, setrlimit as libc_setrlimit}; + +// TODO: Add `RLIM64_INFINITY` to upstream libc. +#[cfg(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +pub(super) const LIBC_RLIM_INFINITY: u64 = !0_u64; + +#[cfg(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +pub(super) use c::{getrlimit64 as libc_getrlimit, setrlimit64 as libc_setrlimit}; + +#[cfg(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +#[cfg(feature = "mm")] +pub(super) use c::mmap64 as libc_mmap; + +// `prlimit64` wasn't supported in glibc until 2.13. +#[cfg(all(target_os = "linux", target_env = "gnu"))] +weak_or_syscall! { + fn prlimit64( + pid: c::pid_t, + resource: c::__rlimit_resource_t, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64 + ) via SYS_prlimit64 -> c::c_int +} +#[cfg(all(target_os = "linux", target_env = "musl"))] +weak_or_syscall! { + fn prlimit64( + pid: c::pid_t, + resource: c::c_int, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64 + ) via SYS_prlimit64 -> c::c_int +} +#[cfg(target_os = "android")] +weak_or_syscall! { + fn prlimit64( + pid: c::pid_t, + resource: c::c_int, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64 + ) via SYS_prlimit64 -> c::c_int +} +#[cfg(all(target_os = "linux", target_env = "gnu"))] +pub(super) unsafe fn libc_prlimit( + pid: c::pid_t, + resource: c::__rlimit_resource_t, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64, +) -> c::c_int { + prlimit64(pid, resource, new_limit, old_limit) +} +#[cfg(all(target_os = "linux", target_env = "musl"))] +pub(super) unsafe fn libc_prlimit( + pid: c::pid_t, + resource: c::c_int, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64, +) -> c::c_int { + prlimit64(pid, resource, new_limit, old_limit) +} +#[cfg(target_os = "android")] +pub(super) unsafe fn libc_prlimit( + pid: c::pid_t, + resource: c::c_int, + new_limit: *const c::rlimit64, + old_limit: *mut c::rlimit64, +) -> c::c_int { + prlimit64(pid, resource, new_limit, old_limit) +} + +#[cfg(not(any( + windows, + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", + target_os = "redox", +)))] +#[cfg(feature = "fs")] +pub(super) use c::openat as libc_openat; +#[cfg(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +#[cfg(feature = "fs")] +pub(super) use c::openat64 as libc_openat; + +#[cfg(target_os = "fuchsia")] +#[cfg(feature = "fs")] +pub(super) use c::fallocate as libc_fallocate; +#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg(feature = "fs")] +pub(super) use c::fallocate64 as libc_fallocate; +#[cfg(not(any( + windows, + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "linux", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +#[cfg(feature = "fs")] +pub(super) use c::posix_fadvise as libc_posix_fadvise; +#[cfg(any( + target_os = "android", + target_os = "emscripten", + target_os = "linux", + target_os = "l4re", +))] +#[cfg(feature = "fs")] +pub(super) use c::posix_fadvise64 as libc_posix_fadvise; + +#[cfg(all(not(any( + windows, + target_os = "android", + target_os = "linux", + target_os = "emscripten", +))))] +pub(super) use c::{pread as libc_pread, pwrite as libc_pwrite}; +#[cfg(any(target_os = "android", target_os = "linux", target_os = "emscripten"))] +pub(super) use c::{pread64 as libc_pread, pwrite64 as libc_pwrite}; +#[cfg(any(target_os = "linux", target_os = "emscripten"))] +pub(super) use c::{preadv64 as libc_preadv, pwritev64 as libc_pwritev}; +#[cfg(target_os = "android")] +mod readwrite_pv64 { + use super::c; + + // 64-bit offsets on 32-bit platforms are passed in endianness-specific + // lo/hi pairs. See src/backend/linux_raw/conv.rs for details. + #[cfg(all(target_endian = "little", target_pointer_width = "32"))] + fn lo(x: u64) -> usize { + (x >> 32) as usize + } + #[cfg(all(target_endian = "little", target_pointer_width = "32"))] + fn hi(x: u64) -> usize { + (x & 0xffff_ffff) as usize + } + #[cfg(all(target_endian = "big", target_pointer_width = "32"))] + fn lo(x: u64) -> usize { + (x & 0xffff_ffff) as usize + } + #[cfg(all(target_endian = "big", target_pointer_width = "32"))] + fn hi(x: u64) -> usize { + (x >> 32) as usize + } + + pub(in super::super) unsafe fn preadv64( + fd: c::c_int, + iov: *const c::iovec, + iovcnt: c::c_int, + offset: c::off64_t, + ) -> c::ssize_t { + // Older Android libc lacks `preadv64`, so use the `weak!` mechanism to + // test for it, and call back to `c::syscall`. We don't use + // `weak_or_syscall` here because we need to pass the 64-bit offset + // specially. + weak! { + fn preadv64(c::c_int, *const c::iovec, c::c_int, c::off64_t) -> c::ssize_t + } + if let Some(fun) = preadv64.get() { + fun(fd, iov, iovcnt, offset) + } else { + #[cfg(target_pointer_width = "32")] + { + c::syscall( + c::SYS_preadv, + fd, + iov, + iovcnt, + hi(offset as u64), + lo(offset as u64), + ) as c::ssize_t + } + #[cfg(target_pointer_width = "64")] + { + c::syscall(c::SYS_preadv, fd, iov, iovcnt, offset) as c::ssize_t + } + } + } + pub(in super::super) unsafe fn pwritev64( + fd: c::c_int, + iov: *const c::iovec, + iovcnt: c::c_int, + offset: c::off64_t, + ) -> c::ssize_t { + // See the comments in `preadv64`. + weak! { + fn pwritev64(c::c_int, *const c::iovec, c::c_int, c::off64_t) -> c::ssize_t + } + if let Some(fun) = pwritev64.get() { + fun(fd, iov, iovcnt, offset) + } else { + #[cfg(target_pointer_width = "32")] + { + c::syscall( + c::SYS_pwritev, + fd, + iov, + iovcnt, + hi(offset as u64), + lo(offset as u64), + ) as c::ssize_t + } + #[cfg(target_pointer_width = "64")] + { + c::syscall(c::SYS_pwritev, fd, iov, iovcnt, offset) as c::ssize_t + } + } + } +} +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "haiku", + target_os = "ios", + target_os = "linux", + target_os = "macos", + target_os = "redox", + target_os = "solaris", +)))] +pub(super) use c::{preadv as libc_preadv, pwritev as libc_pwritev}; +#[cfg(target_os = "android")] +pub(super) use readwrite_pv64::{preadv64 as libc_preadv, pwritev64 as libc_pwritev}; +// macOS added preadv and pwritev in version 11.0 +#[cfg(any(target_os = "ios", target_os = "macos"))] +mod readwrite_pv { + use super::c; + + weakcall! { + pub(in super::super) fn preadv( + fd: c::c_int, + iov: *const c::iovec, + iovcnt: c::c_int, + offset: c::off_t + ) -> c::ssize_t + } + weakcall! { + pub(in super::super) fn pwritev( + fd: c::c_int, + iov: *const c::iovec, + iovcnt: c::c_int, offset: c::off_t + ) -> c::ssize_t + } +} +#[cfg(all(target_os = "linux", target_env = "gnu"))] +pub(super) use c::{preadv64v2 as libc_preadv2, pwritev64v2 as libc_pwritev2}; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub(super) use readwrite_pv::{preadv as libc_preadv, pwritev as libc_pwritev}; + +#[cfg(not(any( + windows, + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "linux", + target_os = "l4re", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +#[cfg(feature = "fs")] +pub(super) use c::posix_fallocate as libc_posix_fallocate; +#[cfg(target_os = "l4re")] +#[cfg(feature = "fs")] +pub(super) use c::posix_fallocate64 as libc_posix_fallocate; +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "linux", + target_os = "l4re", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[cfg(feature = "fs")] +pub(super) use {c::fstatfs as libc_fstatfs, c::statfs as libc_statfs}; +#[cfg(not(any( + windows, + target_os = "android", + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "linux", + target_os = "l4re", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[cfg(feature = "fs")] +pub(super) use {c::fstatvfs as libc_fstatvfs, c::statvfs as libc_statvfs}; + +#[cfg(any( + target_os = "android", + target_os = "linux", + target_os = "emscripten", + target_os = "l4re", +))] +#[cfg(feature = "fs")] +pub(super) use { + c::fstatfs64 as libc_fstatfs, c::fstatvfs64 as libc_fstatvfs, c::statfs64 as libc_statfs, + c::statvfs64 as libc_statvfs, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/auxv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/auxv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/auxv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/auxv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,54 @@ +use super::super::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(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_execfn() -> &'static CStr { + if let Some(libc_getauxval) = getauxval.get() { + unsafe { CStr::from_ptr(libc_getauxval(c::AT_EXECFN).cast()) } + } else { + cstr!("") + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/param/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +pub(crate) mod auxv; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/cpu_set.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/cpu_set.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/cpu_set.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/cpu_set.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,49 @@ +#![allow(non_snake_case)] + +use super::super::c; +use super::types::{RawCpuSet, CPU_SETSIZE}; + +#[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(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn CPU_COUNT(cpuset: &RawCpuSet) -> u32 { + use core::convert::TryInto; + unsafe { c::CPU_COUNT(cpuset).try_into().unwrap() } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,12 @@ +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +pub(crate) mod cpu_set; +#[cfg(not(windows))] +pub(crate) mod syscalls; +pub(crate) mod types; +#[cfg(not(target_os = "wasi"))] +pub(crate) mod wait; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,465 @@ +//! libc syscalls supporting `rustix::process`. + +use super::super::c; +#[cfg(not(any(target_os = "wasi", target_os = "fuchsia")))] +use super::super::conv::borrowed_fd; +#[cfg(not(target_os = "wasi"))] +use super::super::conv::ret_pid_t; +use super::super::conv::{c_str, ret, ret_c_int, ret_discarded_char_ptr}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::super::conv::{syscall_ret, syscall_ret_u32}; +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +use super::types::RawCpuSet; +#[cfg(not(any(target_os = "wasi", target_os = "fuchsia")))] +use crate::fd::BorrowedFd; +use crate::ffi::CStr; +use crate::io; +use core::mem::MaybeUninit; +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +use { + super::super::conv::ret_infallible, + super::super::offset::{libc_getrlimit, libc_rlimit, libc_setrlimit, LIBC_RLIM_INFINITY}, + crate::process::{Resource, Rlimit}, + core::convert::TryInto, +}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use { + super::super::offset::libc_prlimit, + crate::process::{Cpuid, MembarrierCommand, MembarrierQuery}, +}; +#[cfg(not(target_os = "wasi"))] +use { + super::types::RawUname, + crate::process::{Gid, Pid, RawNonZeroPid, RawPid, Signal, Uid, WaitOptions, WaitStatus}, +}; + +#[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 = "wasi", target_os = "fuchsia")))] +pub(crate) fn fchdir(dirfd: BorrowedFd<'_>) -> io::Result<()> { + unsafe { ret(c::fchdir(borrowed_fd(dirfd))) } +} + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn getcwd(buf: &mut [u8]) -> io::Result<()> { + unsafe { ret_discarded_char_ptr(c::getcwd(buf.as_mut_ptr().cast(), buf.len())) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +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 syscall_ret_u32(c::syscall(c::SYS_membarrier, MEMBARRIER_CMD_QUERY, 0)) { + Ok(query) => MembarrierQuery::from_bits_unchecked(query), + Err(_) => MembarrierQuery::empty(), + } + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn membarrier(cmd: MembarrierCommand) -> io::Result<()> { + unsafe { syscall_ret(c::syscall(c::SYS_membarrier, cmd as u32, 0)) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) fn membarrier_cpu(cmd: MembarrierCommand, cpu: Cpuid) -> io::Result<()> { + const MEMBARRIER_CMD_FLAG_CPU: u32 = 1; + unsafe { + syscall_ret(c::syscall( + c::SYS_membarrier, + cmd as u32, + MEMBARRIER_CMD_FLAG_CPU, + cpu.as_raw(), + )) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getuid() -> Uid { + unsafe { + let uid = c::getuid(); + Uid::from_raw(uid) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn geteuid() -> Uid { + unsafe { + let uid = c::geteuid(); + Uid::from_raw(uid) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getgid() -> Gid { + unsafe { + let gid = c::getgid(); + Gid::from_raw(gid) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getegid() -> Gid { + unsafe { + let gid = c::getegid(); + Gid::from_raw(gid) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getpid() -> Pid { + unsafe { + let pid = c::getpid(); + debug_assert_ne!(pid, 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pid)) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getppid() -> Option { + unsafe { + let pid: i32 = c::getppid(); + Pid::from_raw(pid) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn getpgid(pid: Option) -> io::Result { + unsafe { + let pgid = ret_pid_t(c::getpgid(Pid::as_raw(pid) as _))?; + debug_assert_ne!(pgid, 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pgid))) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn getpgrp() -> Pid { + unsafe { + let pgid = c::getpgrp(); + debug_assert_ne!(pgid, 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pgid)) + } +} + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +#[inline] +pub(crate) fn sched_getaffinity(pid: Option, cpuset: &mut RawCpuSet) -> io::Result<()> { + unsafe { + ret(c::sched_getaffinity( + Pid::as_raw(pid) as _, + core::mem::size_of::(), + cpuset, + )) + } +} + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +#[inline] +pub(crate) fn sched_setaffinity(pid: Option, cpuset: &RawCpuSet) -> io::Result<()> { + unsafe { + ret(c::sched_setaffinity( + Pid::as_raw(pid) as _, + core::mem::size_of::(), + cpuset, + )) + } +} + +#[inline] +pub(crate) fn sched_yield() { + unsafe { + let _ = c::sched_yield(); + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn uname() -> RawUname { + let mut uname = MaybeUninit::::uninit(); + unsafe { + ret(c::uname(uname.as_mut_ptr())).unwrap(); + uname.assume_init() + } +} + +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +#[inline] +pub(crate) fn nice(inc: i32) -> io::Result { + 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 = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn getpriority_user(uid: Uid) -> io::Result { + 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 = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn getpriority_pgrp(pgid: Option) -> io::Result { + 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 = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn getpriority_process(pid: Option) -> io::Result { + 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 = "fuchsia", target_os = "redox", 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 = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn setpriority_pgrp(pgid: Option, priority: i32) -> io::Result<()> { + unsafe { + ret(c::setpriority( + c::PRIO_PGRP, + Pid::as_raw(pgid) as _, + priority, + )) + } +} + +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn setpriority_process(pid: Option, priority: i32) -> io::Result<()> { + unsafe { + ret(c::setpriority( + c::PRIO_PROCESS, + Pid::as_raw(pid) as _, + priority, + )) + } +} + +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn getrlimit(limit: Resource) -> Rlimit { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret_infallible(libc_getrlimit(limit as _, result.as_mut_ptr())); + rlimit_from_libc(result.assume_init()) + } +} + +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[inline] +pub(crate) fn setrlimit(limit: Resource, new: Rlimit) -> io::Result<()> { + let lim = rlimit_to_libc(new)?; + unsafe { ret(libc_setrlimit(limit as _, &lim)) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn prlimit(pid: Option, limit: Resource, new: Rlimit) -> io::Result { + let lim = rlimit_to_libc(new)?; + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(libc_prlimit( + Pid::as_raw(pid), + limit as _, + &lim, + result.as_mut_ptr(), + ))?; + Ok(rlimit_from_libc(result.assume_init())) + } +} + +/// Convert a Rust [`Rlimit`] to a C `libc_rlimit`. +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +fn rlimit_from_libc(lim: libc_rlimit) -> Rlimit { + let current = if lim.rlim_cur == LIBC_RLIM_INFINITY { + None + } else { + Some(lim.rlim_cur.try_into().unwrap()) + }; + let maximum = if lim.rlim_max == LIBC_RLIM_INFINITY { + None + } else { + Some(lim.rlim_max.try_into().unwrap()) + }; + Rlimit { current, maximum } +} + +/// Convert a C `libc_rlimit` to a Rust `Rlimit`. +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +fn rlimit_to_libc(lim: Rlimit) -> io::Result { + let Rlimit { current, maximum } = lim; + let rlim_cur = match current { + Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?, + None => LIBC_RLIM_INFINITY as _, + }; + let rlim_max = match maximum { + Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?, + None => LIBC_RLIM_INFINITY as _, + }; + Ok(libc_rlimit { rlim_cur, rlim_max }) +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn wait(waitopts: WaitOptions) -> io::Result> { + _waitpid(!0, waitopts) +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn waitpid( + pid: Option, + waitopts: WaitOptions, +) -> io::Result> { + _waitpid(Pid::as_raw(pid), waitopts) +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn _waitpid( + pid: RawPid, + waitopts: WaitOptions, +) -> io::Result> { + unsafe { + let mut status: c::c_int = 0; + let pid = ret_c_int(c::waitpid(pid as _, &mut status, waitopts.bits() as _))?; + Ok(RawNonZeroPid::new(pid).map(|non_zero| { + ( + Pid::from_raw_nonzero(non_zero), + WaitStatus::new(status as _), + ) + })) + } +} + +#[inline] +pub(crate) fn exit_group(code: c::c_int) -> ! { + // `_exit` and `_Exit` are the same; it's just a matter of which ones + // the libc bindings expose. + #[cfg(any(target_os = "wasi", target_os = "solid"))] + unsafe { + c::_Exit(code) + } + #[cfg(unix)] + unsafe { + c::_exit(code) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn setsid() -> io::Result { + unsafe { + let pid = ret_c_int(c::setsid())?; + debug_assert_ne!(pid, 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pid))) + } +} + +#[cfg(not(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 i32)) } +} + +#[cfg(not(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 i32, + )) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn kill_current_process_group(sig: Signal) -> io::Result<()> { + unsafe { ret(c::kill(0, sig as i32)) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[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 { + ret_c_int(c::prctl(option, arg2, arg3, arg4, arg5)) +} + +#[cfg(any(target_os = "freebsd", target_os = "dragonfly"))] +#[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)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,414 @@ +use super::super::c; + +/// A command for use with [`membarrier`] and [`membarrier_cpu`]. +/// +/// For `MEMBARRIER_CMD_QUERY`, see [`membarrier_query`]. +/// +/// [`membarrier`]: crate::process::membarrier +/// [`membarrier_cpu`]: crate::process::membarrier_cpu +/// [`membarrier_query`]: crate::process::membarrier_query +// TODO: These are not yet exposed through libc, so we define the +// constants ourselves. +#[cfg(any(target_os = "android", target_os = "linux"))] +#[derive(Copy, Clone, Eq, PartialEq, Debug)] +#[repr(u32)] +pub enum MembarrierCommand { + /// `MEMBARRIER_CMD_GLOBAL` + #[doc(alias = "Shared")] + #[doc(alias = "MEMBARRIER_CMD_SHARED")] + Global = 1, + /// `MEMBARRIER_CMD_GLOBAL_EXPEDITED` + GlobalExpedited = 2, + /// `MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED` + RegisterGlobalExpedited = 4, + /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED` + PrivateExpedited = 8, + /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED` + RegisterPrivateExpedited = 16, + /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE` + PrivateExpeditedSyncCore = 32, + /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE` + RegisterPrivateExpeditedSyncCore = 64, + /// `MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10) + PrivateExpeditedRseq = 128, + /// `MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ` (since Linux 5.10) + RegisterPrivateExpeditedRseq = 256, +} + +/// 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 = "fuchsia", target_os = "redox", target_os = "wasi")))] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(i32)] +pub enum Resource { + /// `RLIMIT_CPU` + Cpu = c::RLIMIT_CPU as c::c_int, + /// `RLIMIT_FSIZE` + Fsize = c::RLIMIT_FSIZE as c::c_int, + /// `RLIMIT_DATA` + Data = c::RLIMIT_DATA as c::c_int, + /// `RLIMIT_STACK` + Stack = c::RLIMIT_STACK as c::c_int, + /// `RLIMIT_CORE` + #[cfg(not(target_os = "haiku"))] + Core = c::RLIMIT_CORE as c::c_int, + /// `RLIMIT_RSS` + #[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "solaris", + )))] + Rss = c::RLIMIT_RSS as c::c_int, + /// `RLIMIT_NPROC` + #[cfg(not(any(target_os = "haiku", target_os = "illumos", target_os = "solaris")))] + Nproc = c::RLIMIT_NPROC as c::c_int, + /// `RLIMIT_NOFILE` + Nofile = c::RLIMIT_NOFILE as c::c_int, + /// `RLIMIT_MEMLOCK` + #[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "illumos", + target_os = "solaris" + )))] + Memlock = c::RLIMIT_MEMLOCK as c::c_int, + /// `RLIMIT_AS` + #[cfg(not(target_os = "openbsd"))] + As = c::RLIMIT_AS as c::c_int, + /// `RLIMIT_LOCKS` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Locks = c::RLIMIT_LOCKS as c::c_int, + /// `RLIMIT_SIGPENDING` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Sigpending = c::RLIMIT_SIGPENDING as c::c_int, + /// `RLIMIT_MSGQUEUE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Msgqueue = c::RLIMIT_MSGQUEUE as c::c_int, + /// `RLIMIT_NICE` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Nice = c::RLIMIT_NICE as c::c_int, + /// `RLIMIT_RTPRIO` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Rtprio = c::RLIMIT_RTPRIO as c::c_int, + /// `RLIMIT_RTTIME` + #[cfg(not(any( + target_os = "aix", + target_os = "android", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + Rttime = c::RLIMIT_RTTIME as c::c_int, +} + +#[cfg(any(target_os = "ios", target_os = "macos"))] +impl Resource { + /// `RLIMIT_RSS` + #[allow(non_upper_case_globals)] + pub const Rss: Self = Self::As; +} + +/// A signal number for use with [`kill_process`], [`kill_process_group`], +/// and [`kill_current_process_group`]. +/// +/// [`kill_process`]: crate::process::kill_process +/// [`kill_process_group`]: crate::process::kill_process_group +/// [`kill_current_process_group`]: crate::process::kill_current_process_group +#[cfg(not(target_os = "wasi"))] +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(i32)] +pub enum Signal { + /// `SIGHUP` + Hup = c::SIGHUP, + /// `SIGINT` + Int = c::SIGINT, + /// `SIGQUIT` + Quit = c::SIGQUIT, + /// `SIGILL` + Ill = c::SIGILL, + /// `SIGTRAP` + Trap = c::SIGTRAP, + /// `SIGABRT`, aka `SIGIOT` + #[doc(alias = "Iot")] + #[doc(alias = "Abrt")] + Abort = c::SIGABRT, + /// `SIGBUS` + Bus = c::SIGBUS, + /// `SIGFPE` + Fpe = c::SIGFPE, + /// `SIGKILL` + Kill = c::SIGKILL, + /// `SIGUSR1` + Usr1 = c::SIGUSR1, + /// `SIGSEGV` + Segv = c::SIGSEGV, + /// `SIGUSR2` + Usr2 = c::SIGUSR2, + /// `SIGPIPE` + Pipe = c::SIGPIPE, + /// `SIGALRM` + #[doc(alias = "Alrm")] + Alarm = c::SIGALRM, + /// `SIGTERM` + Term = c::SIGTERM, + /// `SIGSTKFLT` + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + all( + any(target_os = "android", target_os = "linux"), + any( + target_arch = "mips", + target_arch = "mips64", + target_arch = "sparc", + target_arch = "sparc64" + ), + ) + )))] + Stkflt = c::SIGSTKFLT, + /// `SIGCHLD` + #[doc(alias = "Chld")] + Child = c::SIGCHLD, + /// `SIGCONT` + Cont = c::SIGCONT, + /// `SIGSTOP` + Stop = c::SIGSTOP, + /// `SIGTSTP` + Tstp = c::SIGTSTP, + /// `SIGTTIN` + Ttin = c::SIGTTIN, + /// `SIGTTOU` + Ttou = c::SIGTTOU, + /// `SIGURG` + Urg = c::SIGURG, + /// `SIGXCPU` + Xcpu = c::SIGXCPU, + /// `SIGXFSZ` + Xfsz = c::SIGXFSZ, + /// `SIGVTALRM` + #[doc(alias = "Vtalrm")] + Vtalarm = c::SIGVTALRM, + /// `SIGPROF` + Prof = c::SIGPROF, + /// `SIGWINCH` + Winch = c::SIGWINCH, + /// `SIGIO`, aka `SIGPOLL` + #[doc(alias = "Poll")] + #[cfg(not(target_os = "haiku"))] + Io = c::SIGIO, + /// `SIGPWR` + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + #[doc(alias = "Pwr")] + Power = c::SIGPWR, + /// `SIGSYS`, aka `SIGUNUSED` + #[doc(alias = "Unused")] + Sys = c::SIGSYS, +} + +#[cfg(not(target_os = "wasi"))] +impl Signal { + /// Convert a raw signal number into a `Signal`, if possible. + pub fn from_raw(sig: i32) -> Option { + match sig as _ { + 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), + c::SIGUSR1 => Some(Self::Usr1), + c::SIGSEGV => Some(Self::Segv), + c::SIGUSR2 => Some(Self::Usr2), + c::SIGPIPE => Some(Self::Pipe), + c::SIGALRM => Some(Self::Alarm), + c::SIGTERM => Some(Self::Term), + #[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + all( + any(target_os = "android", target_os = "linux"), + any( + target_arch = "mips", + target_arch = "mips64", + target_arch = "sparc", + target_arch = "sparc64" + ), + ) + )))] + c::SIGSTKFLT => Some(Self::Stkflt), + c::SIGCHLD => Some(Self::Child), + c::SIGCONT => Some(Self::Cont), + c::SIGSTOP => Some(Self::Stop), + c::SIGTSTP => Some(Self::Tstp), + c::SIGTTIN => Some(Self::Ttin), + c::SIGTTOU => Some(Self::Ttou), + c::SIGURG => Some(Self::Urg), + c::SIGXCPU => Some(Self::Xcpu), + c::SIGXFSZ => Some(Self::Xfsz), + c::SIGVTALRM => Some(Self::Vtalarm), + c::SIGPROF => Some(Self::Prof), + c::SIGWINCH => Some(Self::Winch), + #[cfg(not(target_os = "haiku"))] + c::SIGIO => Some(Self::Io), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + )))] + c::SIGPWR => Some(Self::Power), + c::SIGSYS => Some(Self::Sys), + _ => None, + } + } +} + +pub const EXIT_SUCCESS: c::c_int = c::EXIT_SUCCESS; +pub const EXIT_FAILURE: c::c_int = c::EXIT_FAILURE; +#[cfg(not(target_os = "wasi"))] +pub const EXIT_SIGNALED_SIGABRT: c::c_int = 128 + c::SIGABRT; + +/// A process identifier as a raw integer. +#[cfg(not(target_os = "wasi"))] +pub type RawPid = c::pid_t; +/// A non-zero process identifier as a raw non-zero integer. +#[cfg(not(target_os = "wasi"))] +pub type RawNonZeroPid = core::num::NonZeroI32; +/// A group identifier as a raw integer. +#[cfg(not(target_os = "wasi"))] +pub type RawGid = c::gid_t; +/// A user identifier as a raw integer. +#[cfg(not(target_os = "wasi"))] +pub type RawUid = c::uid_t; +/// A CPU identifier as a raw integer. +#[cfg(any(target_os = "android", target_os = "linux"))] +pub type RawCpuid = u32; +#[cfg(target_os = "freebsd")] +pub type RawId = c::id_t; + +#[cfg(not(target_os = "wasi"))] +pub(crate) type RawUname = c::utsname; + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +pub(crate) type RawCpuSet = c::cpu_set_t; + +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +#[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(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +pub(crate) const CPU_SETSIZE: usize = c::CPU_SETSIZE as usize; +#[cfg(target_os = "dragonfly")] +pub(crate) const CPU_SETSIZE: usize = 256; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/wait.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/wait.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/wait.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/process/wait.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,6 @@ +use super::super::c; + +pub(crate) use c::{ + WCONTINUED, WEXITSTATUS, WIFCONTINUED, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WNOHANG, WSTOPSIG, + WTERMSIG, WUNTRACED, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,16 @@ +//! libc syscalls supporting `rustix::rand`. + +#[cfg(target_os = "linux")] +use {super::super::c, super::super::conv::ret_ssize_t, crate::io, crate::rand::GetRandomFlags}; + +#[cfg(target_os = "linux")] +pub(crate) fn getrandom(buf: &mut [u8], flags: GetRandomFlags) -> io::Result { + // `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 + } + + let nread = + unsafe { ret_ssize_t(getrandom(buf.as_mut_ptr().cast(), buf.len(), flags.bits()))? }; + Ok(nread as usize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/rand/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +#[cfg(target_os = "linux")] +use super::super::c; +#[cfg(target_os = "linux")] +use bitflags::bitflags; + +#[cfg(target_os = "linux")] +bitflags! { + /// `GRND_*` flags for use with [`getrandom`]. + /// + /// [`getrandom`]: crate::rand::getrandom + 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; + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +pub(crate) mod syscalls; +#[cfg(not(target_os = "wasi"))] +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,163 @@ +//! libc syscalls supporting `rustix::termios`. +//! +//! # Safety +//! +//! See the `rustix::backend::syscalls` module documentation for details. + +use super::super::c; +use super::super::conv::{borrowed_fd, ret, ret_pid_t}; +use crate::fd::BorrowedFd; +#[cfg(feature = "procfs")] +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +use crate::ffi::CStr; +#[cfg(not(target_os = "wasi"))] +use crate::io; +#[cfg(not(target_os = "wasi"))] +use crate::process::{Pid, RawNonZeroPid}; +#[cfg(not(target_os = "wasi"))] +use crate::termios::{Action, OptionalActions, QueueSelector, Speed, Termios, Winsize}; +use core::mem::MaybeUninit; + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(c::tcgetattr(borrowed_fd(fd), result.as_mut_ptr()))?; + Ok(result.assume_init()) + } +} + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn tcgetpgrp(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let pid = ret_pid_t(c::tcgetpgrp(borrowed_fd(fd)))?; + debug_assert_ne!(pid, 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_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(target_os = "wasi"))] +pub(crate) fn tcsetattr( + fd: BorrowedFd, + optional_actions: OptionalActions, + termios: &Termios, +) -> io::Result<()> { + unsafe { + ret(c::tcsetattr( + borrowed_fd(fd), + optional_actions as _, + termios, + )) + } +} + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn tcsendbreak(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(c::tcsendbreak(borrowed_fd(fd), 0)) } +} + +#[cfg(not(target_os = "wasi"))] +pub(crate) fn tcdrain(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(c::tcdrain(borrowed_fd(fd))) } +} + +#[cfg(not(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(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 { + unsafe { + let pid = ret_pid_t(c::tcgetsid(borrowed_fd(fd)))?; + debug_assert_ne!(pid, 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pid))) + } +} + +#[cfg(not(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(target_os = "wasi"))] +pub(crate) fn tcgetwinsize(fd: BorrowedFd) -> io::Result { + unsafe { + let mut buf = MaybeUninit::::uninit(); + ret(c::ioctl( + borrowed_fd(fd), + c::TIOCGWINSZ.into(), + buf.as_mut_ptr(), + ))?; + Ok(buf.assume_init()) + } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn cfgetospeed(termios: &Termios) -> Speed { + unsafe { c::cfgetospeed(termios) } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +#[must_use] +pub(crate) fn cfgetispeed(termios: &Termios) -> Speed { + unsafe { c::cfgetispeed(termios) } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn cfmakeraw(termios: &mut Termios) { + unsafe { c::cfmakeraw(termios) } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn cfsetospeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + unsafe { ret(c::cfsetospeed(termios, speed)) } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn cfsetispeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + unsafe { ret(c::cfsetispeed(termios, speed)) } +} + +#[cfg(not(target_os = "wasi"))] +#[inline] +pub(crate) fn cfsetspeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + unsafe { ret(c::cfsetspeed(termios, speed)) } +} + +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`, because we assume + // `BorrrowedFd` 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 = "procfs")] +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +pub(crate) fn ttyname(dirfd: BorrowedFd<'_>, buf: &mut [u8]) -> io::Result { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/termios/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1046 @@ +use super::super::c; + +/// `TCSA*` values for use with [`tcsetattr`]. +/// +/// [`tcsetattr`]: crate::termios::tcsetattr +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(i32)] +pub enum OptionalActions { + /// `TCSANOW`—Make the change immediately. + Now = c::TCSANOW, + + /// `TCSADRAIN`—Make the change after all output has been transmitted. + Drain = c::TCSADRAIN, + + /// `TCSAFLUSH`—Discard any pending input and then make the change + /// after all output has been transmitted. + Flush = c::TCSAFLUSH, +} + +/// `TC*` values for use with [`tcflush`]. +/// +/// [`tcflush`]: crate::termios::tcflush +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(i32)] +pub enum QueueSelector { + /// `TCIFLUSH`—Flush data received but not read. + IFlush = c::TCIFLUSH, + + /// `TCOFLUSH`—Flush data written but not transmitted. + OFlush = c::TCOFLUSH, + + /// `TCIOFLUSH`—`IFlush` and `OFlush` combined. + IOFlush = c::TCIOFLUSH, +} + +/// `TC*` values for use with [`tcflow`]. +/// +/// [`tcflow`]: crate::termios::tcflow +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(i32)] +pub enum Action { + /// `TCOOFF`—Suspend output. + OOff = c::TCOOFF, + + /// `TCOON`—Restart suspended output. + OOn = c::TCOON, + + /// `TCIOFF`—Transmits a STOP byte. + IOff = c::TCIOFF, + + /// `TCION`—Transmits a START byte. + IOn = c::TCION, +} + +/// `struct termios` for use with [`tcgetattr`]. +/// +/// [`tcgetattr`]: crate::termios::tcgetattr +pub type Termios = c::termios; + +/// `struct winsize` for use with [`tcgetwinsize`]. +/// +/// [`tcgetwinsize`]: crate::termios::tcgetwinsize +pub type Winsize = c::winsize; + +/// `tcflag_t`—A type for the flags fields of [`Termios`]. +pub type Tcflag = c::tcflag_t; + +/// `speed_t`—A return type for [`cfsetspeed`] and similar. +/// +/// [`cfsetspeed`]: crate::termios::cfsetspeed +pub type Speed = c::speed_t; + +/// `VINTR` +pub const VINTR: usize = c::VINTR as usize; + +/// `VQUIT` +pub const VQUIT: usize = c::VQUIT as usize; + +/// `VERASE` +pub const VERASE: usize = c::VERASE as usize; + +/// `VKILL` +pub const VKILL: usize = c::VKILL as usize; + +/// `VEOF` +pub const VEOF: usize = c::VEOF as usize; + +/// `VTIME` +pub const VTIME: usize = c::VTIME as usize; + +/// `VMIN` +pub const VMIN: usize = c::VMIN as usize; + +/// `VSWTC` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const VSWTC: usize = c::VSWTC as usize; + +/// `VSTART` +pub const VSTART: usize = c::VSTART as usize; + +/// `VSTOP` +pub const VSTOP: usize = c::VSTOP as usize; + +/// `VSUSP` +pub const VSUSP: usize = c::VSUSP as usize; + +/// `VEOL` +pub const VEOL: usize = c::VEOL as usize; + +/// `VREPRINT` +#[cfg(not(target_os = "haiku"))] +pub const VREPRINT: usize = c::VREPRINT as usize; + +/// `VDISCARD` +#[cfg(not(target_os = "haiku"))] +pub const VDISCARD: usize = c::VDISCARD as usize; + +/// `VWERASE` +#[cfg(not(target_os = "haiku"))] +pub const VWERASE: usize = c::VWERASE as usize; + +/// `VLNEXT` +#[cfg(not(target_os = "haiku"))] +pub const VLNEXT: usize = c::VLNEXT as usize; + +/// `VEOL2` +pub const VEOL2: usize = c::VEOL2 as usize; + +/// `IGNBRK` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IGNBRK: c::c_uint = c::IGNBRK; + +/// `BRKINT` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const BRKINT: c::c_uint = c::BRKINT; + +/// `IGNPAR` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IGNPAR: c::c_uint = c::IGNPAR; + +/// `PARMRK` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const PARMRK: c::c_uint = c::PARMRK; + +/// `INPCK` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const INPCK: c::c_uint = c::INPCK; + +/// `ISTRIP` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ISTRIP: c::c_uint = c::ISTRIP; + +/// `INLCR` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const INLCR: c::c_uint = c::INLCR; + +/// `IGNCR` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IGNCR: c::c_uint = c::IGNCR; + +/// `ICRNL` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ICRNL: c::c_uint = c::ICRNL; + +/// `IUCLC` +#[cfg(any(target_os = "haiku", target_os = "illumos", target_os = "solaris"))] +pub const IUCLC: c::c_uint = c::IUCLC; + +/// `IXON` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IXON: c::c_uint = c::IXON; + +/// `IXANY` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const IXANY: c::c_uint = c::IXANY; + +/// `IXOFF` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IXOFF: c::c_uint = c::IXOFF; + +/// `IMAXBEL` +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox" +)))] +pub const IMAXBEL: c::c_uint = c::IMAXBEL; + +/// `IUTF8` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const IUTF8: c::c_uint = c::IUTF8; + +/// `OPOST` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const OPOST: c::c_uint = c::OPOST; + +/// `OLCUC` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "redox", +)))] +pub const OLCUC: c::c_uint = c::OLCUC; + +/// `ONLCR` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ONLCR: c::c_uint = c::ONLCR; + +/// `OCRNL` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const OCRNL: c::c_uint = c::OCRNL; + +/// `ONOCR` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ONOCR: c::c_uint = c::ONOCR; + +/// `ONLRET` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ONLRET: c::c_uint = c::ONLRET; + +/// `OFILL` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +)))] +pub const OFILL: c::c_uint = c::OFILL; + +/// `OFDEL` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +)))] +pub const OFDEL: c::c_uint = c::OFDEL; + +/// `NLDLY` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const NLDLY: c::c_uint = c::NLDLY; + +/// `NL0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const NL0: c::c_uint = c::NL0; + +/// `NL1` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const NL1: c::c_uint = c::NL1; + +/// `CRDLY` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CRDLY: c::c_uint = c::CRDLY; + +/// `CR0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CR0: c::c_uint = c::CR0; + +/// `CR1` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CR1: c::c_uint = c::CR1; + +/// `CR2` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CR2: c::c_uint = c::CR2; + +/// `CR3` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CR3: c::c_uint = c::CR3; + +/// `TABDLY` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", +)))] +pub const TABDLY: c::c_uint = c::TABDLY; + +/// `TAB0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const TAB0: c::c_uint = c::TAB0; + +/// `TAB1` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const TAB1: c::c_uint = c::TAB1; + +/// `TAB2` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const TAB2: c::c_uint = c::TAB2; + +/// `TAB3` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const TAB3: c::c_uint = c::TAB3; + +/// `BSDLY` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const BSDLY: c::c_uint = c::BSDLY; + +/// `BS0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const BS0: c::c_uint = c::BS0; + +/// `BS1` +#[cfg(not(any( + target_env = "musl", + target_os = "emscripten", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const BS1: c::c_uint = c::BS1; + +/// `FFDLY` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const FFDLY: c::c_uint = c::FFDLY; + +/// `FF0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const FF0: c::c_uint = c::FF0; + +/// `FF1` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const FF1: c::c_uint = c::FF1; + +/// `VTDLY` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const VTDLY: c::c_uint = c::VTDLY; + +/// `VT0` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const VT0: c::c_uint = c::VT0; + +/// `VT1` +#[cfg(not(any( + target_env = "musl", + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const VT1: c::c_uint = c::VT1; + +/// `B0` +pub const B0: Speed = c::B0; + +/// `B50` +pub const B50: Speed = c::B50; + +/// `B75` +pub const B75: Speed = c::B75; + +/// `B110` +pub const B110: Speed = c::B110; + +/// `B134` +pub const B134: Speed = c::B134; + +/// `B150` +pub const B150: Speed = c::B150; + +/// `B200` +pub const B200: Speed = c::B200; + +/// `B300` +pub const B300: Speed = c::B300; + +/// `B600` +pub const B600: Speed = c::B600; + +/// `B1200` +pub const B1200: Speed = c::B1200; + +/// `B1800` +pub const B1800: Speed = c::B1800; + +/// `B2400` +pub const B2400: Speed = c::B2400; + +/// `B4800` +pub const B4800: Speed = c::B4800; + +/// `B9600` +pub const B9600: Speed = c::B9600; + +/// `B19200` +pub const B19200: Speed = c::B19200; + +/// `B38400` +pub const B38400: Speed = c::B38400; + +/// `B57600` +pub const B57600: Speed = c::B57600; + +/// `B115200` +pub const B115200: Speed = c::B115200; + +/// `B230400` +pub const B230400: Speed = c::B230400; + +/// `B460800` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" +)))] +pub const B460800: Speed = c::B460800; + +/// `B500000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B500000: Speed = c::B500000; + +/// `B576000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B576000: Speed = c::B576000; + +/// `B921600` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" +)))] +pub const B921600: Speed = c::B921600; + +/// `B1000000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B1000000: Speed = c::B1000000; + +/// `B1152000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B1152000: Speed = c::B1152000; + +/// `B1500000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B1500000: Speed = c::B1500000; + +/// `B2000000` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B2000000: Speed = c::B2000000; + +/// `B2500000` +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B2500000: Speed = c::B2500000; + +/// `B3000000` +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B3000000: Speed = c::B3000000; + +/// `B3500000` +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B3500000: Speed = c::B3500000; + +/// `B4000000` +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub const B4000000: Speed = c::B4000000; + +/// `CSIZE` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CSIZE: c::c_uint = c::CSIZE; + +/// `CS5` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CS5: c::c_uint = c::CS5; + +/// `CS6` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CS6: c::c_uint = c::CS6; + +/// `CS7` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CS7: c::c_uint = c::CS7; + +/// `CS8` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CS8: c::c_uint = c::CS8; + +/// `CSTOPB` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CSTOPB: c::c_uint = c::CSTOPB; + +/// `CREAD` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CREAD: c::c_uint = c::CREAD; + +/// `PARENB` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const PARENB: c::c_uint = c::PARENB; + +/// `PARODD` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const PARODD: c::c_uint = c::PARODD; + +/// `HUPCL` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const HUPCL: c::c_uint = c::HUPCL; + +/// `CLOCAL` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const CLOCAL: c::c_uint = c::CLOCAL; + +/// `ISIG` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ISIG: c::c_uint = c::ISIG; + +/// `ICANON`—A flag for the `c_lflag` field of [`Termios`] indicating +/// canonical mode. +pub const ICANON: Tcflag = c::ICANON; + +/// `ECHO` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ECHO: c::c_uint = c::ECHO; + +/// `ECHOE` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ECHOE: c::c_uint = c::ECHOE; + +/// `ECHOK` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ECHOK: c::c_uint = c::ECHOK; + +/// `ECHONL` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const ECHONL: c::c_uint = c::ECHONL; + +/// `NOFLSH` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const NOFLSH: c::c_uint = c::NOFLSH; + +/// `TOSTOP` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const TOSTOP: c::c_uint = c::TOSTOP; + +/// `IEXTEN` +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub const IEXTEN: c::c_uint = c::IEXTEN; + +/// `EXTA` +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", +)))] +pub const EXTA: c::c_uint = c::EXTA; + +/// `EXTB` +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", +)))] +pub const EXTB: c::c_uint = c::EXTB; + +/// `CBAUD` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", +)))] +pub const CBAUD: c::c_uint = c::CBAUD; + +/// `CBAUDEX` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CBAUDEX: c::c_uint = c::CBAUDEX; + +/// `CIBAUD` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_arch = "powerpc", + target_arch = "powerpc64", +)))] +pub const CIBAUD: c::tcflag_t = c::CIBAUD; + +/// `CIBAUD` +// TODO: Upstream this. +#[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] +pub const CIBAUD: c::tcflag_t = 0o77600000; + +/// `CMSPAR` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const CMSPAR: c::c_uint = c::CMSPAR; + +/// `CRTSCTS` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const CRTSCTS: c::c_uint = c::CRTSCTS; + +/// `XCASE` +#[cfg(any(target_arch = "s390x", target_os = "haiku"))] +pub const XCASE: c::c_uint = c::XCASE; + +/// `ECHOCTL` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const ECHOCTL: c::c_uint = c::ECHOCTL; + +/// `ECHOPRT` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const ECHOPRT: c::c_uint = c::ECHOPRT; + +/// `ECHOKE` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const ECHOKE: c::c_uint = c::ECHOKE; + +/// `FLUSHO` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const FLUSHO: c::c_uint = c::FLUSHO; + +/// `PENDIN` +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub const PENDIN: c::c_uint = c::PENDIN; + +/// `EXTPROC` +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox" +)))] +pub const EXTPROC: c::c_uint = c::EXTPROC; + +/// `XTABS` +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub const XTABS: c::c_uint = c::XTABS; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +#[cfg(not(windows))] +pub(crate) mod syscalls; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/thread/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,301 @@ +//! libc syscalls supporting `rustix::thread`. + +use super::super::c; +use super::super::conv::ret; +#[cfg(any(target_os = "android", target_os = "linux"))] +use super::super::conv::{borrowed_fd, ret_c_int}; +use super::super::time::types::LibcTimespec; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::fd::BorrowedFd; +use crate::io; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::process::{Pid, RawNonZeroPid}; +#[cfg(not(target_os = "redox"))] +use crate::thread::{NanosleepRelativeResult, Timespec}; +use core::mem::MaybeUninit; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +use {crate::thread::ClockId, core::ptr::null_mut}; + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __clock_nanosleep_time64(c::clockid_t, c::c_int, *const LibcTimespec, *mut LibcTimespec) -> c::c_int); +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __nanosleep64(*const LibcTimespec, *mut LibcTimespec) -> c::c_int); + +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11. + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +#[inline] +pub(crate) fn clock_nanosleep_relative(id: ClockId, request: &Timespec) -> NanosleepRelativeResult { + let mut remain = MaybeUninit::::uninit(); + let flags = 0; + + // 32-bit gnu version: libc has `clock_nanosleep` but it is not y2038 safe by + // default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_clock_nanosleep) = __clock_nanosleep_time64.get() { + 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)), + } + } else { + clock_nanosleep_relative_old(id, request) + } + } + + // Main version: libc is y2038 safe and has `clock_nanosleep`. + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + match c::clock_nanosleep(id as c::clockid_t, flags, request, remain.as_mut_ptr()) { + 0 => NanosleepRelativeResult::Ok, + err if err == io::Errno::INTR.0 => { + NanosleepRelativeResult::Interrupted(remain.assume_init()) + } + err => NanosleepRelativeResult::Err(io::Errno(err)), + } + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +unsafe fn clock_nanosleep_relative_old(id: ClockId, request: &Timespec) -> NanosleepRelativeResult { + use core::convert::TryInto; + 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::::uninit(); + let flags = 0; + + 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( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11. + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +#[inline] +pub(crate) fn clock_nanosleep_absolute(id: ClockId, request: &Timespec) -> io::Result<()> { + let flags = c::TIMER_ABSTIME; + + // 32-bit gnu version: libc has `clock_nanosleep` but it is not y2038 safe by + // default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + { + if let Some(libc_clock_nanosleep) = __clock_nanosleep_time64.get() { + match unsafe { + libc_clock_nanosleep( + id as c::clockid_t, + flags, + &request.clone().into(), + null_mut(), + ) + } { + 0 => Ok(()), + err => Err(io::Errno(err)), + } + } else { + clock_nanosleep_absolute_old(id, request) + } + } + + // Main version: libc is y2038 safe and has `clock_nanosleep`. + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + match unsafe { c::clock_nanosleep(id as c::clockid_t, flags, request, null_mut()) } { + 0 => Ok(()), + err => Err(io::Errno(err)), + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +fn clock_nanosleep_absolute_old(id: ClockId, request: &Timespec) -> io::Result<()> { + use core::convert::TryInto; + + 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, null_mut()) } { + 0 => Ok(()), + err => Err(io::Errno(err)), + } +} + +#[cfg(not(target_os = "redox"))] +#[inline] +pub(crate) fn nanosleep(request: &Timespec) -> NanosleepRelativeResult { + let mut remain = MaybeUninit::::uninit(); + + // 32-bit gnu version: libc has `nanosleep` but it is not y2038 safe by + // default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_nanosleep) = __nanosleep64.get() { + 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), + } + } else { + nanosleep_old(request) + } + } + + // Main version: libc is y2038 safe and has `nanosleep`. + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + match ret(c::nanosleep(request, remain.as_mut_ptr())) { + Ok(()) => NanosleepRelativeResult::Ok, + Err(io::Errno::INTR) => NanosleepRelativeResult::Interrupted(remain.assume_init()), + Err(err) => NanosleepRelativeResult::Err(err), + } + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +unsafe fn nanosleep_old(request: &Timespec) -> NanosleepRelativeResult { + use core::convert::TryInto; + 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::::uninit(); + + 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(any(target_os = "android", target_os = "linux"))] +#[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`. + // + weak_or_syscall! { + fn gettid() via SYS_gettid -> c::pid_t + } + + unsafe { + let tid = gettid(); + debug_assert_ne!(tid, 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(tid)) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn setns(fd: BorrowedFd, nstype: c::c_int) -> io::Result { + unsafe { ret_c_int(c::setns(borrowed_fd(fd), nstype)) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn unshare(flags: crate::thread::UnshareFlags) -> io::Result<()> { + unsafe { ret(c::unshare(flags.bits() as i32)) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +#[cfg(not(windows))] +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,414 @@ +//! libc syscalls supporting `rustix::time`. + +use super::super::c; +use super::super::conv::ret; +#[cfg(feature = "time")] +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +use super::super::time::types::LibcItimerspec; +use super::super::time::types::LibcTimespec; +use super::types::Timespec; +#[cfg(not(target_os = "wasi"))] +use super::types::{ClockId, DynamicClockId}; +use crate::io; +use core::mem::MaybeUninit; +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +use { + super::super::conv::{borrowed_fd, ret_owned_fd}, + crate::fd::{BorrowedFd, OwnedFd}, + crate::time::{Itimerspec, TimerfdClockId, TimerfdFlags, TimerfdTimerFlags}, +}; + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __clock_gettime64(c::clockid_t, *mut LibcTimespec) -> c::c_int); +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +weak!(fn __clock_getres64(c::clockid_t, *mut LibcTimespec) -> c::c_int); +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[cfg(feature = "time")] +weak!(fn __timerfd_gettime64(c::c_int, *mut LibcItimerspec) -> c::c_int); +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[cfg(feature = "time")] +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 { + let mut timespec = MaybeUninit::::uninit(); + + // 32-bit gnu version: libc has `clock_getres` but it is not y2038 safe by + // default. + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_clock_getres) = __clock_getres64.get() { + ret(libc_clock_getres(id as c::clockid_t, timespec.as_mut_ptr())).unwrap(); + timespec.assume_init().into() + } else { + clock_getres_old(id) + } + } + + // Main version: libc is y2038 safe and has `clock_getres`. + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + let _ = c::clock_getres(id as c::clockid_t, timespec.as_mut_ptr()); + timespec.assume_init() + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[must_use] +unsafe fn clock_getres_old(id: ClockId) -> Timespec { + let mut old_timespec = MaybeUninit::::uninit(); + ret(c::clock_getres( + id as c::clockid_t, + old_timespec.as_mut_ptr(), + )) + .unwrap(); + let old_timespec = 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 { + let mut timespec = MaybeUninit::::uninit(); + + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_clock_gettime) = __clock_gettime64.get() { + ret(libc_clock_gettime( + id as c::clockid_t, + timespec.as_mut_ptr(), + )) + .unwrap(); + timespec.assume_init().into() + } else { + 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(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + ret(c::clock_gettime(id as c::clockid_t, timespec.as_mut_ptr())).unwrap(); + timespec.assume_init() + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[must_use] +unsafe fn clock_gettime_old(id: ClockId) -> Timespec { + let mut old_timespec = MaybeUninit::::uninit(); + ret(c::clock_gettime( + id as c::clockid_t, + old_timespec.as_mut_ptr(), + )) + .unwrap(); + let old_timespec = 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 { + let mut timespec = MaybeUninit::::uninit(); + unsafe { + let id: c::clockid_t = match id { + DynamicClockId::Known(id) => id as c::clockid_t, + + #[cfg(any(target_os = "android", target_os = "linux"))] + DynamicClockId::Dynamic(fd) => { + use crate::fd::AsRawFd; + const CLOCKFD: i32 = 3; + (!fd.as_raw_fd() << 3) | CLOCKFD + } + + #[cfg(not(any(target_os = "android", target_os = "linux")))] + DynamicClockId::Dynamic(_fd) => { + // Dynamic clocks are not supported on this platform. + return Err(io::Errno::INVAL); + } + + #[cfg(any(target_os = "android", target_os = "linux"))] + DynamicClockId::RealtimeAlarm => c::CLOCK_REALTIME_ALARM, + + #[cfg(any(target_os = "android", target_os = "linux"))] + DynamicClockId::Tai => c::CLOCK_TAI, + + #[cfg(any(target_os = "android", target_os = "linux"))] + DynamicClockId::Boottime => c::CLOCK_BOOTTIME, + + #[cfg(any(target_os = "android", target_os = "linux"))] + DynamicClockId::BoottimeAlarm => c::CLOCK_BOOTTIME_ALARM, + }; + + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + { + if let Some(libc_clock_gettime) = __clock_gettime64.get() { + ret(libc_clock_gettime( + id as c::clockid_t, + timespec.as_mut_ptr(), + ))?; + + Ok(timespec.assume_init().into()) + } else { + clock_gettime_dynamic_old(id) + } + } + + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + { + ret(c::clock_gettime(id as c::clockid_t, timespec.as_mut_ptr()))?; + + Ok(timespec.assume_init()) + } + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[inline] +unsafe fn clock_gettime_dynamic_old(id: c::clockid_t) -> io::Result { + let mut old_timespec = MaybeUninit::::uninit(); + + ret(c::clock_gettime( + id as c::clockid_t, + old_timespec.as_mut_ptr(), + ))?; + + let old_timespec = old_timespec.assume_init(); + Ok(Timespec { + tv_sec: old_timespec.tv_sec.into(), + tv_nsec: old_timespec.tv_nsec.into(), + }) +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +pub(crate) fn timerfd_create(id: TimerfdClockId, flags: TimerfdFlags) -> io::Result { + unsafe { ret_owned_fd(c::timerfd_create(id as c::clockid_t, flags.bits())) } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +pub(crate) fn timerfd_settime( + fd: BorrowedFd<'_>, + flags: TimerfdTimerFlags, + new_value: &Itimerspec, +) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_timerfd_settime) = __timerfd_settime64.get() { + ret(libc_timerfd_settime( + borrowed_fd(fd), + flags.bits(), + &new_value.clone().into(), + result.as_mut_ptr(), + ))?; + Ok(result.assume_init().into()) + } else { + timerfd_settime_old(fd, flags, new_value) + } + } + + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + ret(c::timerfd_settime( + borrowed_fd(fd), + flags.bits(), + new_value, + result.as_mut_ptr(), + ))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[cfg(feature = "time")] +unsafe fn timerfd_settime_old( + fd: BorrowedFd<'_>, + flags: TimerfdTimerFlags, + new_value: &Itimerspec, +) -> io::Result { + use core::convert::TryInto; + + let mut old_result = MaybeUninit::::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)?, + }, + }; + + ret(c::timerfd_settime( + borrowed_fd(fd), + flags.bits(), + &old_new_value, + old_result.as_mut_ptr(), + ))?; + + let old_result = 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(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +pub(crate) fn timerfd_gettime(fd: BorrowedFd<'_>) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + ))] + unsafe { + if let Some(libc_timerfd_gettime) = __timerfd_gettime64.get() { + ret(libc_timerfd_gettime(borrowed_fd(fd), result.as_mut_ptr()))?; + Ok(result.assume_init().into()) + } else { + timerfd_gettime_old(fd) + } + } + + #[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", + )))] + unsafe { + ret(c::timerfd_gettime(borrowed_fd(fd), result.as_mut_ptr()))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[cfg(feature = "time")] +unsafe fn timerfd_gettime_old(fd: BorrowedFd<'_>) -> io::Result { + use core::convert::TryInto; + + let mut old_result = MaybeUninit::::uninit(); + + ret(c::timerfd_gettime(borrowed_fd(fd), old_result.as_mut_ptr()))?; + + let old_result = 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 _, + }, + }) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/time/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,364 @@ +use super::super::c; +#[cfg(not(target_os = "wasi"))] +use crate::fd::BorrowedFd; +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +use bitflags::bitflags; + +/// `struct timespec` +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +pub type Timespec = c::timespec; + +/// `struct timespec` +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[derive(Debug, Clone, Copy)] +#[repr(C)] +pub struct Timespec { + /// Seconds. + pub tv_sec: Secs, + + /// Nanoseconds. Must be less than 1_000_000_000. + pub tv_nsec: Nsecs, +} + +/// A type for the `tv_sec` field of [`Timespec`]. +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +#[allow(deprecated)] +pub type Secs = c::time_t; + +/// A type for the `tv_sec` field of [`Timespec`]. +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +pub type Secs = i64; + +/// A type for the `tv_nsec` field of [`Timespec`]. +#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))] +pub type Nsecs = i64; + +/// A type for the `tv_nsec` field of [`Timespec`]. +#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] +pub type Nsecs = c::c_long; + +/// On most platforms, `LibcTimespec` is just `Timespec`. +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +pub(crate) type LibcTimespec = Timespec; + +/// 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(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[repr(C)] +#[derive(Debug, Clone)] +pub(crate) struct LibcTimespec { + pub(crate) tv_sec: Secs, + + #[cfg(target_endian = "big")] + padding: core::mem::MaybeUninit, + + pub(crate) tv_nsec: Nsecs, + + #[cfg(target_endian = "little")] + padding: core::mem::MaybeUninit, +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +impl From for Timespec { + #[inline] + fn from(t: LibcTimespec) -> Self { + Self { + tv_sec: t.tv_sec, + tv_nsec: t.tv_nsec, + } + } +} + +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +impl From for LibcTimespec { + #[inline] + fn from(t: Timespec) -> Self { + Self { + tv_sec: t.tv_sec, + tv_nsec: t.tv_nsec, + padding: core::mem::MaybeUninit::uninit(), + } + } +} + +/// `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(target_os = "ios", target_os = "macos", target_os = "wasi")))] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[cfg_attr(not(target_os = "dragonfly"), repr(i32))] +#[cfg_attr(target_os = "dragonfly", repr(u64))] +#[non_exhaustive] +pub enum ClockId { + /// `CLOCK_REALTIME` + Realtime = c::CLOCK_REALTIME, + + /// `CLOCK_MONOTONIC` + Monotonic = c::CLOCK_MONOTONIC, + + /// `CLOCK_PROCESS_CPUTIME_ID` + #[cfg(not(any( + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + ProcessCPUTime = c::CLOCK_PROCESS_CPUTIME_ID, + + /// `CLOCK_THREAD_CPUTIME_ID` + #[cfg(not(any( + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + )))] + ThreadCPUTime = c::CLOCK_THREAD_CPUTIME_ID, + + /// `CLOCK_REALTIME_COARSE` + #[cfg(any(target_os = "android", target_os = "linux"))] + RealtimeCoarse = c::CLOCK_REALTIME_COARSE, + + /// `CLOCK_MONOTONIC_COARSE` + #[cfg(any(target_os = "android", target_os = "linux"))] + MonotonicCoarse = c::CLOCK_MONOTONIC_COARSE, + + /// `CLOCK_MONOTONIC_RAW` + #[cfg(any(target_os = "android", target_os = "linux"))] + MonotonicRaw = c::CLOCK_MONOTONIC_RAW, +} + +/// `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. +#[cfg(any(target_os = "ios", target_os = "macos"))] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u32)] +#[non_exhaustive] +pub enum ClockId { + /// `CLOCK_REALTIME` + Realtime = c::CLOCK_REALTIME, + + /// `CLOCK_MONOTONIC` + Monotonic = c::CLOCK_MONOTONIC, + + /// `CLOCK_PROCESS_CPUTIME_ID` + ProcessCPUTime = c::CLOCK_PROCESS_CPUTIME_ID, + + /// `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`, available on Linux >= 3.0 + #[cfg(any(target_os = "android", target_os = "linux"))] + RealtimeAlarm, + + /// `CLOCK_TAI`, available on Linux >= 3.10 + #[cfg(any(target_os = "android", target_os = "linux"))] + Tai, + + /// `CLOCK_BOOTTIME`, available on Linux >= 2.6.39 + #[cfg(any(target_os = "android", target_os = "linux"))] + Boottime, + + /// `CLOCK_BOOTTIME_ALARM`, available on Linux >= 2.6.39 + #[cfg(any(target_os = "android", target_os = "linux"))] + BoottimeAlarm, +} + +/// `struct itimerspec` +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +pub type Itimerspec = c::itimerspec; + +/// `struct itimerspec` +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Clone)] +pub struct Itimerspec { + pub it_interval: Timespec, + pub it_value: Timespec, +} + +/// On most platforms, `LibcItimerspec` is just `Itimerspec`. +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(not(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +)))] +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(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +#[repr(C)] +#[derive(Debug, Clone)] +pub(crate) struct LibcItimerspec { + pub it_interval: LibcTimespec, + pub it_value: LibcTimespec, +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +impl From for Itimerspec { + #[inline] + fn from(t: LibcItimerspec) -> Self { + Self { + it_interval: t.it_interval.into(), + it_value: t.it_value.into(), + } + } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(all( + any(target_arch = "arm", target_arch = "mips", target_arch = "x86"), + target_env = "gnu", +))] +impl From for LibcItimerspec { + #[inline] + fn from(t: Itimerspec) -> Self { + Self { + it_interval: t.it_interval.into(), + it_value: t.it_value.into(), + } + } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +bitflags! { + /// `TFD_*` flags for use with [`timerfd_create`]. + pub struct TimerfdFlags: c::c_int { + /// `TFD_NONBLOCK` + const NONBLOCK = c::TFD_NONBLOCK; + + /// `TFD_CLOEXEC` + const CLOEXEC = c::TFD_CLOEXEC; + } +} + +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +bitflags! { + /// `TFD_TIMER_*` flags for use with [`timerfd_settime`]. + pub struct TimerfdTimerFlags: c::c_int { + /// `TFD_TIMER_ABSTIME` + const ABSTIME = c::TFD_TIMER_ABSTIME; + + /// `TFD_TIMER_CANCEL_ON_SET` + #[cfg(any(target_os = "android", target_os = "linux"))] + const CANCEL_ON_SET = 2; // TODO: upstream TFD_TIMER_CANCEL_ON_SET + } +} + +/// `CLOCK_*` constants for use with [`timerfd_create`]. +/// +/// [`timerfd_create`]: crate::time::timerfd_create +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(i32)] +#[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. + Realtime = 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. + Monotonic = 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. + Boottime = 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. + RealtimeAlarm = 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. + BoottimeAlarm = c::CLOCK_BOOTTIME_ALARM, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/weak.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/weak.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/weak.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/weak.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,226 @@ +// Implementation derived from `weak` in Rust's +// library/std/src/sys/unix/weak.rs at revision +// fd0cb0cdc21dd9c06025277d772108f8d42cb25f. + +//! 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::backend::weak::Weak $ret> = + $crate::backend::weak::Weak::new(concat!(stringify!($name), '\0')); + ) +} + +pub(crate) struct Weak { + name: &'static str, + addr: AtomicPtr, + _marker: marker::PhantomData, +} + +impl Weak { + pub(crate) const fn new(name: &'static str) -> Self { + Self { + name, + addr: AtomicPtr::new(INVALID), + _marker: marker::PhantomData, + } + } + + pub(crate) fn get(&self) -> Option { + assert_eq!(mem::size_of::(), mem::size_of::()); + 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 { + 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)), + } + } +} + +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(any(target_os = "android", target_os = "linux")))] +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(any(target_os = "android", target_os = "linux"))] +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::*; + + trait AsSyscallArg { + type SyscallArgType; + fn into_syscall_arg(self) -> Self::SyscallArgType; + } + + // Pass pointer types as pointers, to preserve provenance. + impl AsSyscallArg for *mut T { + type SyscallArgType = *mut T; + fn into_syscall_arg(self) -> Self::SyscallArgType { self } + } + impl 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 = c::c_long; + fn into_syscall_arg(self) -> Self::SyscallArgType { + $crate::fd::AsRawFd::as_raw_fd(&self) as _ + } + } + + // Coerce integer values into `c_long`. + impl AsSyscallArg for i32 { + type SyscallArgType = c::c_long; + fn into_syscall_arg(self) -> Self::SyscallArgType { self as _ } + } + impl AsSyscallArg for u32 { + type SyscallArgType = c::c_long; + fn into_syscall_arg(self) -> Self::SyscallArgType { self as _ } + } + impl AsSyscallArg for usize { + type SyscallArgType = c::c_long; + fn into_syscall_arg(self) -> Self::SyscallArgType { self as _ } + } + + // `concat_idents is unstable, so we take an extra `sys_name` + // parameter and have our users do the concat for us for now. + /* + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/winsock_c.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/winsock_c.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/winsock_c.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/libc/winsock_c.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,82 @@ +//! Adapt the Winsock2 API to resemble a POSIX-style libc API. + +#![allow(unused_imports)] +#![allow(non_camel_case_types)] + +use windows_sys::Win32::Networking::WinSock; + +pub(crate) use libc::{ + c_char, c_int, c_long, c_longlong, c_schar, c_short, c_uchar, c_uint, c_ulong, c_ulonglong, + c_ushort, c_void, ssize_t, +}; +pub(crate) type socklen_t = i32; + +// windows-sys declares these constants as unsigned. For better compatibility +// with Unix-family APIs, redeclare them as signed. Filed upstream: +// +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 _; +pub(crate) const SO_TYPE: i32 = WinSock::SO_TYPE as _; +pub(crate) const SO_REUSEADDR: i32 = WinSock::SO_REUSEADDR as _; +pub(crate) const SO_BROADCAST: i32 = WinSock::SO_BROADCAST as _; +pub(crate) const SO_LINGER: i32 = WinSock::SO_LINGER as _; +pub(crate) const SOL_SOCKET: i32 = WinSock::SOL_SOCKET as _; +pub(crate) const SO_RCVTIMEO: i32 = WinSock::SO_RCVTIMEO as _; +pub(crate) const SO_SNDTIMEO: i32 = WinSock::SO_SNDTIMEO as _; +pub(crate) const IP_TTL: i32 = WinSock::IP_TTL as _; +pub(crate) const TCP_NODELAY: i32 = WinSock::TCP_NODELAY as _; +pub(crate) const IP_ADD_MEMBERSHIP: i32 = WinSock::IP_ADD_MEMBERSHIP as _; +pub(crate) const IP_DROP_MEMBERSHIP: i32 = WinSock::IP_DROP_MEMBERSHIP as _; +pub(crate) const IP_MULTICAST_TTL: i32 = WinSock::IP_MULTICAST_TTL as _; +pub(crate) const IP_MULTICAST_LOOP: i32 = WinSock::IP_MULTICAST_LOOP as _; +pub(crate) const IPV6_ADD_MEMBERSHIP: i32 = WinSock::IPV6_ADD_MEMBERSHIP as _; +pub(crate) const IPV6_DROP_MEMBERSHIP: i32 = WinSock::IPV6_DROP_MEMBERSHIP as _; +pub(crate) const IPV6_MULTICAST_LOOP: i32 = WinSock::IPV6_MULTICAST_LOOP as _; +pub(crate) const IPV6_V6ONLY: i32 = WinSock::IPV6_V6ONLY as _; +pub(crate) const POLLERR: i16 = WinSock::POLLERR as _; +pub(crate) const POLLIN: i16 = WinSock::POLLIN as _; +pub(crate) const POLLNVAL: i16 = WinSock::POLLNVAL as _; +pub(crate) const POLLHUP: i16 = WinSock::POLLHUP as _; +pub(crate) const POLLPRI: i16 = WinSock::POLLPRI as _; +pub(crate) const POLLOUT: i16 = WinSock::POLLOUT as _; +pub(crate) const POLLRDNORM: i16 = WinSock::POLLRDNORM as _; +pub(crate) const POLLWRNORM: i16 = WinSock::POLLWRNORM as _; +pub(crate) const POLLRDBAND: i16 = WinSock::POLLRDBAND as _; +pub(crate) const POLLWRBAND: i16 = WinSock::POLLWRBAND as _; + +// As above, cast the types for better compatibility, and also rename these to +// their Unix names. +pub(crate) const SHUT_RDWR: i32 = WinSock::SD_BOTH as _; +pub(crate) const SHUT_RD: i32 = WinSock::SD_RECEIVE as _; +pub(crate) const SHUT_WR: i32 = WinSock::SD_SEND 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. +// +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, 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, *, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/aarch64.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/aarch64.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/aarch64.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/aarch64.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,268 @@ +//! aarch64 Linux system calls. + +use crate::backend::reg::{ + ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm, 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 { + 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 { + 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 { + 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", + in("x8") nr.to_asm(), + in("x0") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/arm.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/arm.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/arm.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/arm.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,265 @@ +//! arm Linux system calls. + +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 { + 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 { + 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 { + 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", + in("r7") nr.to_asm(), + in("r0") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips64.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips64.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips64.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips64.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,466 @@ +//! 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, A0, A1, A2, A3, A4, A5, R0, +}; +use core::arch::asm; + +#[inline] +pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg { + 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 { + 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 { + 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", + in("$2" /*$v0*/) nr.to_asm(), + in("$4" /*$a0*/) a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mips.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,543 @@ +//! 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, A0, A1, A2, A3, A4, A5, A6, R0, +}; +use core::arch::asm; + +#[inline] +pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg { + 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 { + 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 { + 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", + in("$2" /*$v0*/) nr.to_asm(), + in("$4" /*$a0*/) a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,18 @@ +//! Inline asm for making system calls. +//! +//! 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. + +#[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 = "mips64", path = "mips64.rs")] +#[cfg_attr(target_arch = "powerpc64", path = "powerpc64.rs")] +#[cfg_attr(target_arch = "riscv64", path = "riscv64.rs")] +#[cfg_attr(target_arch = "x86", path = "x86.rs")] +#[cfg_attr(target_arch = "x86_64", path = "x86_64.rs")] +mod target_arch; + +pub(in crate::backend) use self::target_arch::*; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/powerpc64.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/powerpc64.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/powerpc64.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/powerpc64.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,413 @@ +//! 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, A0, A1, A2, A3, A4, A5, R0, +}; +use core::arch::asm; + +#[inline] +pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber) -> RetReg { + 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 { + 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 { + 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", + in("r0") nr.to_asm(), + in("r3") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/riscv64.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/riscv64.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/riscv64.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/riscv64.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,265 @@ +//! riscv64 Linux system calls. + +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 { + 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 { + 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 { + 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", + in("a7") nr.to_asm(), + in("a0") a0.to_asm(), + options(noreturn) + ); +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/thumb.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/thumb.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/thumb.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/thumb.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,322 @@ +//! 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, A0, A1, A2, A3, A4, A5, R0, +}; +use core::arch::asm; + +#[inline] +pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg { + 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 { + 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 { + 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", + nr = in(reg) nr.to_asm(), + in("r0") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86_64.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86_64.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86_64.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86_64.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,293 @@ +//! x86-64 Linux system calls. + +use crate::backend::reg::{ + ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm, 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 { + 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 { + 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 { + 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", + in("rax") nr.to_asm(), + in("rdi") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/inline/x86.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,494 @@ +//! 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. + +#![allow(dead_code)] + +use crate::backend::reg::{ + ArgReg, FromAsm, RetReg, SyscallNumber, ToAsm, 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 { + let r0; + asm!( + "call {callee}", + callee = in(reg) callee, + inlateout("eax") nr.to_asm() => r0, + options(preserves_flags) + ); + FromAsm::from_asm(r0) +} + +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall1( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, +) -> RetReg { + let r0; + asm!( + "call {callee}", + callee = in(reg) callee, + inlateout("eax") nr.to_asm() => r0, + in("ebx") a0.to_asm(), + options(preserves_flags) + ); + FromAsm::from_asm(r0) +} + +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall1_noreturn( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, +) -> ! { + asm!( + "call {callee}", + 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 { + 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(), + options(preserves_flags) + ); + 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 { + 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(), + options(preserves_flags) + ); + 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 { + 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(), + options(preserves_flags) + ); + 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 { + 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 DWORD PTR [eax + 0]", + "mov esi, DWORD PTR [eax + 4]", + "mov eax, DWORD PTR [eax + 8]", + "call DWORD PTR [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(), + options(preserves_flags) + ); + FromAsm::from_asm(r0) +} + +#[allow(clippy::too_many_arguments)] +#[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 { + 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 DWORD PTR [eax + 0]", + "mov esi, DWORD PTR [eax + 4]", + "mov ebp, DWORD PTR [eax + 8]", + "mov eax, DWORD PTR [eax + 12]", + "call DWORD PTR [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(), + options(preserves_flags) + ); + FromAsm::from_asm(r0) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> RetReg { + 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 { + 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 { + 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", + in("eax") nr.to_asm(), + in("ebx") a0.to_asm(), + options(noreturn) + ) +} + +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + 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 { + 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 { + 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 { + 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 { + 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 { + let r0; + 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 { + 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 { + 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 { + let r0; + // See the comments in `indirect_syscall6`. + asm!( + "push ebp", + "push esi", + "mov esi, DWORD PTR [eax + 0]", + "mov ebp, DWORD PTR [eax + 4]", + "mov eax, DWORD PTR [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 { + let r0; + // See the comments in `indirect_syscall6`. + asm!( + "push ebp", + "push esi", + "mov esi, DWORD PTR [eax + 0]", + "mov ebp, DWORD PTR [eax + 4]", + "mov eax, DWORD PTR [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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,222 @@ +//! Architecture-specific syscall code. +//! +//! `rustix` has inline assembly sequences using `asm!`, but that requires +//! nightly Rust, so it also has out-of-line ("outline") assembly sequences +//! in .s files. And 32-bit x86 is special (see comments below). +//! +//! This module also has a `choose` submodule which chooses a scheme and is +//! what most of the `rustix` syscalls use. +//! +//! # Safety +//! +//! This contains the inline `asm` statements performing the syscall +//! instructions and FFI declarations declaring the out-of-line ("outline") +//! 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)] + +// When inline asm is available, use it. Otherwise, use out-of-line asm. These +// functions always use the machine's syscall instruction, even when it isn't +// the fastest option available. +#[cfg_attr(asm, path = "inline/mod.rs")] +#[cfg_attr(not(asm), path = "outline/mod.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 = "mips64", + target_arch = "powerpc64", + target_arch = "riscv64", + 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_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(), + ) + }; +} + +#[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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/aarch64.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/aarch64.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/aarch64.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/aarch64.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,119 @@ +// Assembly code for making aarch64 syscalls. +// +// aarch64 syscall argument register ordering is the same as the aarch64 +// userspace argument register ordering except that the syscall number +// (nr) is passed in w8. +// +// outline.rs takes care of reordering the nr argument to the end for us, +// so we only need to move nr into w8. +// +// arm64-ilp32 is not yet supported. + + .file "aarch64.s" + .arch armv8-a + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function +rustix_syscall0_nr_last: + .cfi_startproc + mov w8, w0 + svc #0 + ret + .cfi_endproc + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function +rustix_syscall1_nr_last: + .cfi_startproc + mov w8, w1 + svc #0 + ret + .cfi_endproc + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function +rustix_syscall1_noreturn_nr_last: + .cfi_startproc + mov w8, w1 + svc #0 + brk #0x1 + .cfi_endproc + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function +rustix_syscall2_nr_last: + .cfi_startproc + mov w8, w2 + svc #0 + ret + .cfi_endproc + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function +rustix_syscall3_nr_last: + .cfi_startproc + mov w8, w3 + svc #0 + ret + .cfi_endproc + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function +rustix_syscall4_nr_last: + .cfi_startproc + mov w8, w4 + svc #0 + ret + .cfi_endproc + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function +rustix_syscall5_nr_last: + .cfi_startproc + mov w8, w5 + svc #0 + ret + .cfi_endproc + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function +rustix_syscall6_nr_last: + .cfi_startproc + mov w8, w6 + svc #0 + ret + .cfi_endproc + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/arm.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/arm.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/arm.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/arm.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,135 @@ +// Assembly code for making arm syscalls. +// +// arm syscall argument register ordering is the similar to the arm +// userspace argument register ordering except that the syscall number +// (nr) is passed in r7. +// +// nr_last.rs takes care of reordering the nr argument to the end for us, +// so we only need to move nr into r7 and take care of r4 and r5 if needed. + + .file "arm.s" + .arch armv5t + + .section .text.rustix_syscall0_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, %function +rustix_syscall0_nr_last: + .fnstart + .cantunwind + push {r7, lr} + mov r7, r0 + svc #0 + pop {r7, pc} + .fnend + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, %function +rustix_syscall1_nr_last: + .fnstart + .cantunwind + push {r7, lr} + mov r7, r1 + svc #0 + pop {r7, pc} + .fnend + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, %function +rustix_syscall1_noreturn_nr_last: + .fnstart + .cantunwind + // Don't save r7 and lr; this is noreturn, so we'll never restore them. + mov r7, r1 + svc #0 + udf #16 // Trap instruction + .fnend + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, %function +rustix_syscall2_nr_last: + .fnstart + .cantunwind + push {r7, lr} + mov r7, r2 + svc #0 + pop {r7, pc} + .fnend + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, %function +rustix_syscall3_nr_last: + .fnstart + .cantunwind + push {r7, lr} + mov r7, r3 + svc #0 + pop {r7, pc} + .fnend + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, %function +rustix_syscall4_nr_last: + .fnstart + .cantunwind + push {r7, lr} + ldr r7, [sp, #8] + svc #0 + pop {r7, pc} + .fnend + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, %function +rustix_syscall5_nr_last: + .fnstart + .cantunwind + push {r4, r7, r11, lr} + ldr r7, [sp, #20] + ldr r4, [sp, #16] + svc #0 + pop {r4, r7, r11, pc} + .fnend + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",%progbits + .p2align 4 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, %function +rustix_syscall6_nr_last: + .fnstart + .cantunwind + push {r4, r5, r7, lr} + add r7, sp, #16 + ldm r7, {r4, r5, r7} + svc #0 + pop {r4, r5, r7, pc} + .fnend + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",%progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips64.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips64.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips64.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips64.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,189 @@ +# Assembly code for making mips64 syscalls. +# +# mips64 syscall argument register ordering is the same as the mips64 +# userspace argument register ordering except that the syscall number +# (nr) is passed in v0. +# +# outline.rs takes care of reordering the nr argument to the end for us, +# so we only need to move nr into v0. + + .file "mips.s" + .section .mdebug.abi64 + .previous + .abicalls + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall0_nr_last +rustix_syscall0_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $4 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall0_nr_last + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall1_nr_last +rustix_syscall1_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $5 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall1_nr_last + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall1_noreturn_nr_last +rustix_syscall1_noreturn_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $5 + syscall + teq $0, $0 + .end rustix_syscall1_noreturn_nr_last + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall2_nr_last +rustix_syscall2_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $6 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall2_nr_last + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall3_nr_last +rustix_syscall3_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $7 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall3_nr_last + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall4_nr_last +rustix_syscall4_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $8 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall4_nr_last + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall5_nr_last +rustix_syscall5_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $9 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall5_nr_last + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall6_nr_last +rustix_syscall6_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $10 + syscall + dnegu $12, $2 + jr $31 + movn $2, $12, $7 + .end rustix_syscall6_nr_last + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mips.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,213 @@ +# Assembly code for making mips64 syscalls. +# +# mips64 syscall argument register ordering is the same as the mips64 +# userspace argument register ordering except that the syscall number +# (nr) is passed in v0. +# +# outline.rs takes care of reordering the nr argument to the end for us, +# so we only need to move nr into v0. + + .file "mips.s" + .section .mdebug.abi32 + .previous + .abicalls + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall0_nr_last +rustix_syscall0_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $4 + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall0_nr_last + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall1_nr_last +rustix_syscall1_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $5 + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall1_nr_last + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall1_noreturn_nr_last +rustix_syscall1_noreturn_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $5 + syscall + teq $zero, $zero + .end rustix_syscall1_noreturn_nr_last + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall2_nr_last +rustix_syscall2_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $6 + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall2_nr_last + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall3_nr_last +rustix_syscall3_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + move $2, $7 + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall3_nr_last + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall4_nr_last +rustix_syscall4_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + lw $2, 16($sp) + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall4_nr_last + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall5_nr_last +rustix_syscall5_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + lw $2, 20($sp) + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall5_nr_last + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall6_nr_last +rustix_syscall6_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + lw $2, 24($sp) + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall6_nr_last + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits + + .section .text.rustix_syscall7_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall7_nr_last + .hidden rustix_syscall7_nr_last + .type rustix_syscall7_nr_last, @function + .set nomips16 + .set nomicromips + .ent rustix_syscall7_nr_last +rustix_syscall7_nr_last: + .frame $sp,0,$31 + .mask 0x00000000,0 + .fmask 0x00000000,0 + .set noreorder + .set nomacro + lw $2, 28($sp) + syscall + negu $8, $2 + jr $31 + movn $2, $8, $7 + .end rustix_syscall7_nr_last + .size rustix_syscall7_nr_last, .-rustix_syscall7_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,33 @@ +//! Declare functions defined in out-of-line ("outline") asm files. +//! +//! Kernel calling conventions differ from userspace calling conventions, +//! so we also define inline function wrappers which reorder the arguments +//! so that they match with the kernel convention as closely as possible, +//! to minimize the amount of out-of-line code we need. + +#[cfg(target_arch = "x86")] +mod x86; +// For these architectures, pass the `nr` argument last. +#[cfg(any( + target_arch = "arm", + target_arch = "aarch64", + target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "x86_64", +))] +mod nr_last; + +#[cfg(any( + target_arch = "arm", + target_arch = "aarch64", + target_arch = "mips", + target_arch = "mips64", + target_arch = "powerpc64", + target_arch = "riscv64", + target_arch = "x86_64", +))] +pub(in crate::backend) use nr_last::*; +#[cfg(target_arch = "x86")] +pub(in crate::backend) use x86::*; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/nr_last.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/nr_last.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/nr_last.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/nr_last.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,166 @@ +//! Syscall wrappers for platforms which pass the syscall number specially. +//! +//! Rustix aims to minimize the amount of assembly code it needs. To that end, +//! this code reorders syscall arguments as close as feasible to the actual +//! syscall convention before calling the assembly functions. +//! +//! Many architectures use a convention where the syscall number is passed in a +//! special register, with the regular syscall arguments passed in either the +//! same or similar registers as the platform C convention. This code +//! approximates that order by passing the regular syscall arguments first, and +//! the syscall number last. That way, the outline assembly code typically just +//! needs to move the syscall number to its special register, and leave the +//! other arguments mostly as they are. + +#[cfg(target_arch = "mips")] +use crate::backend::reg::A6; +use crate::backend::reg::{ArgReg, RetReg, SyscallNumber, A0, A1, A2, A3, A4, A5, R0}; + +// First we declare the actual assembly routines with `*_nr_last` names and +// reordered arguments. If the signatures or calling conventions are ever +// changed, the symbol names should also be updated accordingly, to avoid +// collisions with other versions of this crate. +// +// We don't define `_readonly` versions of these because we have no way to tell +// Rust that calls to our outline assembly are readonly. +extern "C" { + fn rustix_syscall0_nr_last(nr: SyscallNumber<'_>) -> RetReg; + fn rustix_syscall1_nr_last(a0: ArgReg<'_, A0>, nr: SyscallNumber<'_>) -> RetReg; + fn rustix_syscall1_noreturn_nr_last(a0: ArgReg<'_, A0>, nr: SyscallNumber<'_>) -> !; + fn rustix_syscall2_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall3_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall4_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall5_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall6_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + a5: ArgReg<'_, A5>, + nr: SyscallNumber<'_>, + ) -> RetReg; + #[cfg(target_arch = "mips")] + fn rustix_syscall7_nr_last( + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + a5: ArgReg<'_, A5>, + a6: ArgReg<'_, A6>, + nr: SyscallNumber<'_>, + ) -> RetReg; +} + +// Then we define inline wrapper functions that do the reordering. + +#[inline] +pub(in crate::backend) unsafe fn syscall0(nr: SyscallNumber<'_>) -> RetReg { + rustix_syscall0_nr_last(nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg { + rustix_syscall1_nr_last(a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! { + rustix_syscall1_noreturn_nr_last(a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + rustix_syscall2_nr_last(a0, a1, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall3( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, +) -> RetReg { + rustix_syscall3_nr_last(a0, a1, a2, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall4( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, +) -> RetReg { + rustix_syscall4_nr_last(a0, a1, a2, a3, nr) +} +#[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 { + rustix_syscall5_nr_last(a0, a1, a2, a3, a4, nr) +} +#[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 { + rustix_syscall6_nr_last(a0, a1, a2, a3, a4, a5, nr) +} +#[cfg(target_arch = "mips")] +#[inline] +pub(in crate::backend) unsafe fn syscall7( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + a5: ArgReg<'_, A5>, + a6: ArgReg<'_, A6>, +) -> RetReg { + rustix_syscall7_nr_last(a0, a1, a2, a3, a4, a5, a6, nr) +} + +// Then we define the `_readonly` versions of the wrappers. We don't have +// separate `_readonly` implementations, so these can just be aliases to +// their non-`_readonly` counterparts. +#[cfg(target_arch = "mips")] +pub(in crate::backend) use syscall7 as syscall7_readonly; +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, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/powerpc64.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/powerpc64.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/powerpc64.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/powerpc64.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,132 @@ +# Assembly code for making powerpc64le syscalls. +# +# powerpc64le syscall argument register ordering is the same as the +# powerpc64le userspace argument register ordering except that the syscall +# number (nr) is passed in r0. +# +# outline.rs takes care of reordering the nr argument to the end for us, +# so we only need to move nr into r0. + + .file "powerpc64le.s" + .machine power8 + .abiversion 2 + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function +rustix_syscall0_nr_last: + .cfi_startproc + mr 0, 3 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function +rustix_syscall1_nr_last: + .cfi_startproc + mr 0, 4 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function +rustix_syscall1_noreturn_nr_last: + .cfi_startproc + mr 0, 4 + sc + trap + .cfi_endproc + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function +rustix_syscall2_nr_last: + .cfi_startproc + mr 0, 5 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function +rustix_syscall3_nr_last: + .cfi_startproc + mr 0, 6 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function +rustix_syscall4_nr_last: + .cfi_startproc + mr 0, 7 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function +rustix_syscall5_nr_last: + .cfi_startproc + mr 0, 8 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 2 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function +rustix_syscall6_nr_last: + .cfi_startproc + mr 0, 9 + sc + bnslr + neg 3, 3 + blr + .cfi_endproc + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/riscv64.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/riscv64.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/riscv64.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/riscv64.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,116 @@ +# Assembly code for making riscv64 syscalls. +# +# riscv64 syscall argument register ordering is the same as the riscv64 +# userspace argument register ordering except that the syscall number +# (nr) is passed in a7. +# +# nr_last.rs takes care of reordering the nr argument to the end for us, +# so we only need to move nr into a7. + + .file "riscv64.s" + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function +rustix_syscall0_nr_last: + .cfi_startproc + mv a7, a0 + ecall + ret + .cfi_endproc + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function +rustix_syscall1_nr_last: + .cfi_startproc + mv a7, a1 + ecall + ret + .cfi_endproc + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function +rustix_syscall1_noreturn_nr_last: + .cfi_startproc + mv a7, a1 + ecall + unimp + .cfi_endproc + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function +rustix_syscall2_nr_last: + .cfi_startproc + mv a7, a2 + ecall + ret + .cfi_endproc + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function +rustix_syscall3_nr_last: + .cfi_startproc + mv a7, a3 + ecall + ret + .cfi_endproc + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function +rustix_syscall4_nr_last: + .cfi_startproc + mv a7, a4 + ecall + ret + .cfi_endproc + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function +rustix_syscall5_nr_last: + .cfi_startproc + mv a7, a5 + ecall + ret + .cfi_endproc + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function +rustix_syscall6_nr_last: + .cfi_startproc + mv a7, a6 + ecall + ret + .cfi_endproc + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86_64.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86_64.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86_64.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86_64.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,122 @@ +// Assembly code for making x86-64 syscalls. +// +// x86-64 syscall argument register ordering is the same as the x86-64 +// userspace argument register ordering except that a3 is passed in r10 +// instead of rcx, and the syscall number (nr) is passed in eax. +// +// outline.rs takes care of reordering the nr argument to the end for us, +// so we only need to move nr into eax and move rcx into r10 as needed. +// +// x32 is not yet supported. + + .file "x86_64.s" + .intel_syntax noprefix + + .section .text.rustix_syscall0_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall0_nr_last + .hidden rustix_syscall0_nr_last + .type rustix_syscall0_nr_last, @function +rustix_syscall0_nr_last: + .cfi_startproc + mov eax,edi + syscall + ret + .cfi_endproc + .size rustix_syscall0_nr_last, .-rustix_syscall0_nr_last + + .section .text.rustix_syscall1_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_nr_last + .hidden rustix_syscall1_nr_last + .type rustix_syscall1_nr_last, @function +rustix_syscall1_nr_last: + .cfi_startproc + mov eax,esi + syscall + ret + .cfi_endproc + .size rustix_syscall1_nr_last, .-rustix_syscall1_nr_last + + .section .text.rustix_syscall1_noreturn_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_noreturn_nr_last + .hidden rustix_syscall1_noreturn_nr_last + .type rustix_syscall1_noreturn_nr_last, @function +rustix_syscall1_noreturn_nr_last: + .cfi_startproc + mov eax,esi + syscall + ud2 + .cfi_endproc + .size rustix_syscall1_noreturn_nr_last, .-rustix_syscall1_noreturn_nr_last + + .section .text.rustix_syscall2_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall2_nr_last + .hidden rustix_syscall2_nr_last + .type rustix_syscall2_nr_last, @function +rustix_syscall2_nr_last: + .cfi_startproc + mov eax,edx + syscall + ret + .cfi_endproc + .size rustix_syscall2_nr_last, .-rustix_syscall2_nr_last + + .section .text.rustix_syscall3_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall3_nr_last + .hidden rustix_syscall3_nr_last + .type rustix_syscall3_nr_last, @function +rustix_syscall3_nr_last: + .cfi_startproc + mov eax,ecx + syscall + ret + .cfi_endproc + .size rustix_syscall3_nr_last, .-rustix_syscall3_nr_last + + .section .text.rustix_syscall4_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall4_nr_last + .hidden rustix_syscall4_nr_last + .type rustix_syscall4_nr_last, @function +rustix_syscall4_nr_last: + .cfi_startproc + mov eax,r8d + mov r10,rcx + syscall + ret + .cfi_endproc + .size rustix_syscall4_nr_last, .-rustix_syscall4_nr_last + + .section .text.rustix_syscall5_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall5_nr_last + .hidden rustix_syscall5_nr_last + .type rustix_syscall5_nr_last, @function +rustix_syscall5_nr_last: + .cfi_startproc + mov eax,r9d + mov r10,rcx + syscall + ret + .cfi_endproc + .size rustix_syscall5_nr_last, .-rustix_syscall5_nr_last + + .section .text.rustix_syscall6_nr_last,"ax",@progbits + .p2align 4 + .weak rustix_syscall6_nr_last + .hidden rustix_syscall6_nr_last + .type rustix_syscall6_nr_last, @function +rustix_syscall6_nr_last: + .cfi_startproc + mov eax,DWORD PTR [rsp+0x8] + mov r10,rcx + syscall + ret + .cfi_endproc + .size rustix_syscall6_nr_last, .-rustix_syscall6_nr_last + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,285 @@ +//! Syscall wrappers for 32-bit x86. +//! +//! This module is similar to the `nr_last` module, except specialized for +//! 32-bit x86. +//! +//! The syscall convention passes all arguments in registers. The closest we +//! can easily get to that from Rust is to use the fastcall convention which +//! passes the first two arguments in `ecx` and `edx`, which are the second +//! and third Linux syscall arguments. To line them up, this function passes +//! the second and third syscall argument as the first and second argument to +//! the outline assembly, followed by the first syscall argument, and then the +//! rest of the syscall arguments. The assembly code still has to do some work, +//! but at least we can get up to two arguments into the right place for it. + +#![allow(dead_code, unused_imports)] + +use crate::backend::reg::{ArgReg, RetReg, SyscallNumber, A0, A1, A2, A3, A4, A5, R0}; +use crate::backend::vdso_wrappers::SyscallType; + +// First we declare the actual assembly routines with `*_nr_last_fastcall` +// names and reordered arguments. If the signatures or calling conventions are +// ever changed, the symbol names should also be updated accordingly, to avoid +// collisions with other versions of this crate. +// +// We don't define `_readonly` versions of these because we have no way to tell +// Rust that calls to our outline assembly are readonly. +extern "fastcall" { + fn rustix_syscall0_nr_last_fastcall(nr: SyscallNumber<'_>) -> RetReg; + fn rustix_syscall1_nr_last_fastcall(a0: ArgReg<'_, A0>, nr: SyscallNumber<'_>) -> RetReg; + fn rustix_syscall1_noreturn_nr_last_fastcall(a0: ArgReg<'_, A0>, nr: SyscallNumber<'_>) -> !; + fn rustix_syscall2_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall3_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall4_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall5_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + nr: SyscallNumber<'_>, + ) -> RetReg; + fn rustix_syscall6_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + a5: ArgReg<'_, A5>, + nr: SyscallNumber<'_>, + ) -> RetReg; +} + +// Then we define inline wrapper functions that do the reordering. + +#[inline] +pub(in crate::backend) unsafe fn syscall0(nr: SyscallNumber<'_>) -> RetReg { + rustix_syscall0_nr_last_fastcall(nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> RetReg { + rustix_syscall1_nr_last_fastcall(a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall1_noreturn(nr: SyscallNumber<'_>, a0: ArgReg<'_, A0>) -> ! { + rustix_syscall1_noreturn_nr_last_fastcall(a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall2( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + rustix_syscall2_nr_last_fastcall(a1, a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall3( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, +) -> RetReg { + rustix_syscall3_nr_last_fastcall(a1, a2, a0, nr) +} +#[inline] +pub(in crate::backend) unsafe fn syscall4( + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a3: ArgReg<'_, A3>, +) -> RetReg { + rustix_syscall4_nr_last_fastcall(a1, a2, a0, a3, nr) +} +#[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 { + rustix_syscall5_nr_last_fastcall(a1, a2, a0, a3, a4, nr) +} +#[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 { + rustix_syscall6_nr_last_fastcall(a1, a2, a0, a3, a4, a5, nr) +} + +// Then we define the `_readonly` versions of the wrappers. We don't have +// separate `_readonly` implementations, so these can just be aliases to +// their non-`_readonly` counterparts. +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, +}; + +// x86 prefers to route all syscalls through the vDSO, though this isn't +// always possible, so it also has a special form for doing the dispatch. +// +// First we declare the actual assembly routines with `*_nr_last_fastcall` +// names and reordered arguments. If the signatures or calling conventions are +// ever changed, the symbol names should also be updated accordingly, to avoid +// collisions with other versions of this crate. +extern "fastcall" { + fn rustix_indirect_syscall0_nr_last_fastcall( + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall1_nr_last_fastcall( + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall1_noreturn_nr_last_fastcall( + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> !; + fn rustix_indirect_syscall2_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall3_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall4_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall5_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; + fn rustix_indirect_syscall6_nr_last_fastcall( + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, + a0: ArgReg<'_, A0>, + a3: ArgReg<'_, A3>, + a4: ArgReg<'_, A4>, + a5: ArgReg<'_, A5>, + nr: SyscallNumber<'_>, + callee: SyscallType, + ) -> RetReg; +} + +// Then we define inline wrapper functions that do the reordering. + +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall0( + callee: SyscallType, + nr: SyscallNumber<'_>, +) -> RetReg { + rustix_indirect_syscall0_nr_last_fastcall(nr, callee) +} +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall1( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, +) -> RetReg { + rustix_indirect_syscall1_nr_last_fastcall(a0, nr, callee) +} +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall1_noreturn( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, +) -> ! { + rustix_indirect_syscall1_noreturn_nr_last_fastcall(a0, nr, callee) +} +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall2( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, +) -> RetReg { + rustix_indirect_syscall2_nr_last_fastcall(a1, a0, nr, callee) +} +#[inline] +pub(in crate::backend) unsafe fn indirect_syscall3( + callee: SyscallType, + nr: SyscallNumber<'_>, + a0: ArgReg<'_, A0>, + a1: ArgReg<'_, A1>, + a2: ArgReg<'_, A2>, +) -> RetReg { + rustix_indirect_syscall3_nr_last_fastcall(a1, a2, a0, nr, callee) +} +#[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 { + rustix_indirect_syscall4_nr_last_fastcall(a1, a2, a0, a3, nr, callee) +} +#[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 { + rustix_indirect_syscall5_nr_last_fastcall(a1, a2, a0, a3, a4, nr, callee) +} +#[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 { + rustix_indirect_syscall6_nr_last_fastcall(a1, a2, a0, a3, a4, a5, nr, callee) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.s cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.s --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.s 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/arch/outline/x86.s 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,381 @@ +// Assembly code for making x86 syscalls. +// +// On x86 we use the "fastcall" convention which passes the first two +// arguments in ecx and edx. Outline.rs reorders the arguments to put +// a1 and a2 in those registers so they we don't have to move them to +// set up the kernel convention. +// +// "fastcall" expects callee to pop argument stack space, so we use +// `ret imm` instructions to clean up the stack. We don't need callee +// cleanup per se, it just comes along with using "fastcall". + + .file "x86.s" + .intel_syntax noprefix + + .section .text.rustix_indirect_syscall0_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall0_nr_last_fastcall + .hidden rustix_indirect_syscall0_nr_last_fastcall + .type rustix_indirect_syscall0_nr_last_fastcall, @function +rustix_indirect_syscall0_nr_last_fastcall: + .cfi_startproc + mov eax,ecx + call edx + ret + .cfi_endproc + .size rustix_indirect_syscall0_nr_last_fastcall, .-rustix_indirect_syscall0_nr_last_fastcall + + .section .text.rustix_indirect_syscall1_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall1_nr_last_fastcall + .hidden rustix_indirect_syscall1_nr_last_fastcall + .type rustix_indirect_syscall1_nr_last_fastcall, @function +rustix_indirect_syscall1_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov ebx,ecx + mov eax,edx + call DWORD PTR [esp+0x8] + pop ebx + .cfi_def_cfa_offset 4 + ret 0x4 + .cfi_endproc + .size rustix_indirect_syscall1_nr_last_fastcall, .-rustix_indirect_syscall1_nr_last_fastcall + + .section .text.rustix_indirect_syscall1_noreturn_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall1_noreturn_nr_last_fastcall + .hidden rustix_indirect_syscall1_noreturn_nr_last_fastcall + .type rustix_indirect_syscall1_noreturn_nr_last_fastcall, @function +rustix_indirect_syscall1_noreturn_nr_last_fastcall: + .cfi_startproc + mov ebx,ecx + mov eax,edx + call DWORD PTR [esp+0x4] + ud2 + .cfi_endproc + .size rustix_indirect_syscall1_noreturn_nr_last_fastcall, .-rustix_indirect_syscall1_noreturn_nr_last_fastcall + + .section .text.rustix_indirect_syscall2_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall2_nr_last_fastcall + .hidden rustix_indirect_syscall2_nr_last_fastcall + .type rustix_indirect_syscall2_nr_last_fastcall, @function +rustix_indirect_syscall2_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov ebx,edx + mov eax,DWORD PTR [esp+0x8] + call DWORD PTR [esp+0xc] + pop ebx + .cfi_def_cfa_offset 4 + ret 0x8 + .cfi_endproc + .size rustix_indirect_syscall2_nr_last_fastcall, .-rustix_indirect_syscall2_nr_last_fastcall + + .section .text.rustix_indirect_syscall3_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall3_nr_last_fastcall + .hidden rustix_indirect_syscall3_nr_last_fastcall + .type rustix_indirect_syscall3_nr_last_fastcall, @function +rustix_indirect_syscall3_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0x8] + mov eax,DWORD PTR [esp+0xc] + call DWORD PTR [esp+0x10] + pop ebx + .cfi_def_cfa_offset 4 + ret 0xc + .cfi_endproc + .size rustix_indirect_syscall3_nr_last_fastcall, .-rustix_indirect_syscall3_nr_last_fastcall + + .section .text.rustix_indirect_syscall4_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall4_nr_last_fastcall + .hidden rustix_indirect_syscall4_nr_last_fastcall + .type rustix_indirect_syscall4_nr_last_fastcall, @function +rustix_indirect_syscall4_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + push esi + .cfi_def_cfa_offset 12 + .cfi_offset esi, -12 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0xc] + mov esi,DWORD PTR [esp+0x10] + mov eax,DWORD PTR [esp+0x14] + call DWORD PTR [esp+0x18] + pop esi + .cfi_def_cfa_offset 8 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x10 + .cfi_endproc + .size rustix_indirect_syscall4_nr_last_fastcall, .-rustix_indirect_syscall4_nr_last_fastcall + + .section .text.rustix_indirect_syscall5_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall5_nr_last_fastcall + .hidden rustix_indirect_syscall5_nr_last_fastcall + .type rustix_indirect_syscall5_nr_last_fastcall, @function +rustix_indirect_syscall5_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + push esi + .cfi_def_cfa_offset 12 + push edi + .cfi_def_cfa_offset 16 + .cfi_offset edi, -16 + .cfi_offset esi, -12 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0x10] + mov esi,DWORD PTR [esp+0x14] + mov edi,DWORD PTR [esp+0x18] + mov eax,DWORD PTR [esp+0x1c] + call DWORD PTR [esp+0x20] + pop edi + .cfi_def_cfa_offset 12 + pop esi + .cfi_def_cfa_offset 8 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x14 + .cfi_endproc + .size rustix_indirect_syscall5_nr_last_fastcall, .-rustix_indirect_syscall5_nr_last_fastcall + + .section .text.rustix_indirect_syscall6_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_indirect_syscall6_nr_last_fastcall + .hidden rustix_indirect_syscall6_nr_last_fastcall + .type rustix_indirect_syscall6_nr_last_fastcall, @function +rustix_indirect_syscall6_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + push esi + .cfi_def_cfa_offset 12 + push edi + .cfi_def_cfa_offset 16 + push ebp + .cfi_def_cfa_offset 20 + .cfi_offset ebp, -20 + .cfi_offset edi, -16 + .cfi_offset esi, -12 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0x14] + mov esi,DWORD PTR [esp+0x18] + mov edi,DWORD PTR [esp+0x1c] + mov ebp,DWORD PTR [esp+0x20] + mov eax,DWORD PTR [esp+0x24] + call DWORD PTR [esp+0x28] + pop ebp + .cfi_def_cfa_offset 16 + pop edi + .cfi_def_cfa_offset 12 + pop esi + .cfi_def_cfa_offset 8 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x18 + .cfi_endproc + .size rustix_indirect_syscall6_nr_last_fastcall, .-rustix_indirect_syscall6_nr_last_fastcall + + .section .text.rustix_syscall0_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall0_nr_last_fastcall + .hidden rustix_syscall0_nr_last_fastcall + .type rustix_syscall0_nr_last_fastcall, @function +rustix_syscall0_nr_last_fastcall: + .cfi_startproc + mov eax,ecx + int 0x80 + ret + .cfi_endproc + .size rustix_syscall0_nr_last_fastcall, .-rustix_syscall0_nr_last_fastcall + + .section .text.rustix_syscall1_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_nr_last_fastcall + .hidden rustix_syscall1_nr_last_fastcall + .type rustix_syscall1_nr_last_fastcall, @function +rustix_syscall1_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov eax,edx + mov ebx,ecx + int 0x80 + pop ebx + .cfi_def_cfa_offset 4 + ret + .cfi_endproc + .size rustix_syscall1_nr_last_fastcall, .-rustix_syscall1_nr_last_fastcall + + .section .text.rustix_syscall1_noreturn_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall1_noreturn_nr_last_fastcall + .hidden rustix_syscall1_noreturn_nr_last_fastcall + .type rustix_syscall1_noreturn_nr_last_fastcall, @function +rustix_syscall1_noreturn_nr_last_fastcall: + .cfi_startproc + mov eax,edx + mov ebx,ecx + int 0x80 + ud2 + .cfi_endproc + .size rustix_syscall1_noreturn_nr_last_fastcall, .-rustix_syscall1_noreturn_nr_last_fastcall + + .section .text.rustix_syscall2_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall2_nr_last_fastcall + .hidden rustix_syscall2_nr_last_fastcall + .type rustix_syscall2_nr_last_fastcall, @function +rustix_syscall2_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov ebx,edx + mov eax,DWORD PTR [esp+0x8] + int 0x80 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x4 + .cfi_endproc + .size rustix_syscall2_nr_last_fastcall, .-rustix_syscall2_nr_last_fastcall + + .section .text.rustix_syscall3_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall3_nr_last_fastcall + .hidden rustix_syscall3_nr_last_fastcall + .type rustix_syscall3_nr_last_fastcall, @function +rustix_syscall3_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0x8] + mov eax,DWORD PTR [esp+0xc] + int 0x80 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x8 + .cfi_endproc + .size rustix_syscall3_nr_last_fastcall, .-rustix_syscall3_nr_last_fastcall + + .section .text.rustix_syscall4_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall4_nr_last_fastcall + .hidden rustix_syscall4_nr_last_fastcall + .type rustix_syscall4_nr_last_fastcall, @function +rustix_syscall4_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + push esi + .cfi_def_cfa_offset 12 + .cfi_offset esi, -12 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0xc] + mov esi,DWORD PTR [esp+0x10] + mov eax,DWORD PTR [esp+0x14] + int 0x80 + pop esi + .cfi_def_cfa_offset 8 + pop ebx + .cfi_def_cfa_offset 4 + ret 0xc + .cfi_endproc + .size rustix_syscall4_nr_last_fastcall, .-rustix_syscall4_nr_last_fastcall + + .section .text.rustix_syscall5_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall5_nr_last_fastcall + .hidden rustix_syscall5_nr_last_fastcall + .type rustix_syscall5_nr_last_fastcall, @function +rustix_syscall5_nr_last_fastcall: + .cfi_startproc + push ebx + .cfi_def_cfa_offset 8 + push edi + .cfi_def_cfa_offset 12 + push esi + .cfi_def_cfa_offset 16 + .cfi_offset esi, -16 + .cfi_offset edi, -12 + .cfi_offset ebx, -8 + mov ebx,DWORD PTR [esp+0x10] + mov esi,DWORD PTR [esp+0x14] + mov edi,DWORD PTR [esp+0x18] + mov eax,DWORD PTR [esp+0x1c] + int 0x80 + pop esi + .cfi_def_cfa_offset 12 + pop edi + .cfi_def_cfa_offset 8 + pop ebx + .cfi_def_cfa_offset 4 + ret 0x10 + .cfi_endproc + .size rustix_syscall5_nr_last_fastcall, .-rustix_syscall5_nr_last_fastcall + + .section .text.rustix_syscall6_nr_last_fastcall,"ax",@progbits + .p2align 4 + .weak rustix_syscall6_nr_last_fastcall + .hidden rustix_syscall6_nr_last_fastcall + .type rustix_syscall6_nr_last_fastcall, @function +rustix_syscall6_nr_last_fastcall: + .cfi_startproc + push ebp + .cfi_def_cfa_offset 8 + push ebx + .cfi_def_cfa_offset 12 + push edi + .cfi_def_cfa_offset 16 + push esi + .cfi_def_cfa_offset 20 + .cfi_offset esi, -20 + .cfi_offset edi, -16 + .cfi_offset ebx, -12 + .cfi_offset ebp, -8 + mov ebx,DWORD PTR [esp+0x14] + mov esi,DWORD PTR [esp+0x18] + mov edi,DWORD PTR [esp+0x1c] + mov ebp,DWORD PTR [esp+0x20] + mov eax,DWORD PTR [esp+0x24] + int 0x80 + pop esi + .cfi_def_cfa_offset 16 + pop edi + .cfi_def_cfa_offset 12 + pop ebx + .cfi_def_cfa_offset 8 + pop ebp + .cfi_def_cfa_offset 4 + ret 0x14 + .cfi_endproc + .size rustix_syscall6_nr_last_fastcall, .-rustix_syscall6_nr_last_fastcall + + .section .text.rustix_int_0x80,"ax",@progbits + .p2align 4 + .weak rustix_int_0x80 + .hidden rustix_int_0x80 + .type rustix_int_0x80, @function +rustix_int_0x80: + .cfi_startproc + int 0x80 + ret + .cfi_endproc + .size rustix_int_0x80, .-rustix_int_0x80 + + .section .note.GNU-stack,"",@progbits diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/conv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/conv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/conv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/conv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,799 @@ +//! 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, BorrowedFd, FromRawFd, RawFd}; +#[cfg(not(debug_assertions))] +use super::io::errno::decode_usize_infallible; +#[cfg(feature = "runtime")] +use super::io::errno::try_decode_error; +#[cfg(target_pointer_width = "64")] +use super::io::errno::try_decode_u64; +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(any(feature = "thread", feature = "time", target_arch = "x86"))] +use super::time::types::ClockId; +#[cfg(feature = "time")] +use super::time::types::TimerfdClockId; +use crate::fd::OwnedFd; +use crate::ffi::CStr; +#[cfg(feature = "fs")] +use crate::fs::{FileType, Mode, OFlags}; +use crate::io; +use crate::process::{Pid, Resource, Signal}; +use crate::utils::{as_mut_ptr, as_ptr}; +use core::mem::MaybeUninit; +use core::ptr::null_mut; +#[cfg(any(feature = "thread", feature = "time", target_arch = "x86"))] +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::general::socklen_t; +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "fs")] +use linux_raw_sys::general::O_LARGEFILE; + +/// 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::()) +} + +/// 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) -> ArgReg<'a, Num> { + raw_arg(c.cast()) + } +} + +impl<'a, Num: ArgNumber, T> From<*const T> for ArgReg<'a, Num> { + #[inline] + fn from(c: *const T) -> ArgReg<'a, Num> { + 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> 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> 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 >= 0); + + // Don't pass the `io_uring_register_files_skip` sentry value this way. + #[cfg(feature = "io_uring")] + debug_assert_ne!( + fd, + crate::io_uring::io_uring_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(v: &[T]) -> ArgReg { + let mut_ptr = v.as_ptr() as *mut T; + raw_arg(mut_ptr.cast()) +} + +#[inline] +pub(super) fn slice( + v: &[T], +) -> (ArgReg, ArgReg) { + (slice_just_addr(v), pass_usize(v.len())) +} + +#[inline] +pub(super) fn slice_mut( + v: &mut [T], +) -> (ArgReg, ArgReg) { + (raw_arg(v.as_mut_ptr().cast()), pass_usize(v.len())) +} + +#[inline] +pub(super) fn by_ref(t: &T) -> ArgReg { + let mut_ptr = as_ptr(t) as *mut T; + raw_arg(mut_ptr.cast()) +} + +#[inline] +pub(super) fn by_mut(t: &mut T) -> ArgReg { + 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: Option<&mut T>) -> ArgReg { + // 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. +#[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] +#[inline] +pub(super) fn opt_ref(t: Option<&T>) -> ArgReg { + // 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", target_arch = "x86"))] +impl<'a, Num: ArgNumber> From 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 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(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(mode: Mode) -> Self { + pass_usize(mode.bits() as usize) + } +} + +#[cfg(feature = "fs")] +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) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::AtFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::MemfdFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::RenameFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::StatxFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::FdFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::PipeFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::DupFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::ReadWriteFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::EventfdFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::io::epoll::CreateFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "mm")] +impl<'a, Num: ArgNumber> From 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 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 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 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 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 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 for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::backend::mm::types::UserfaultfdFlags) -> Self { + c_uint(flags.bits()) + } +} + +impl<'a, Num: ArgNumber> From + for ArgReg<'a, Num> +{ + #[inline] + fn from(cmd: crate::backend::process::types::MembarrierCommand) -> Self { + c_uint(cmd as u32) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(cpuid: crate::process::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> { + use core::convert::TryInto; + Ok(pass_usize(dev.try_into().map_err(|_err| io::Errno::INVAL)?)) +} + +#[cfg(target_pointer_width = "32")] +#[cfg(feature = "fs")] +#[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")] +#[cfg(feature = "fs")] +#[inline] +const fn oflags_bits(oflags: OFlags) -> c::c_uint { + oflags.bits() +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From 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. +#[cfg(feature = "fs")] +#[inline] +pub(super) fn oflags_for_open_how(oflags: OFlags) -> u64 { + u64::from(oflags_bits(oflags)) +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::FallocateFlags) -> Self { + c_uint(flags.bits()) + } +} + +/// Convert a `Resource` into a syscall argument. +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(resource: Resource) -> Self { + c_uint(resource as c::c_uint) + } +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(pid: Pid) -> Self { + pass_usize(pid.as_raw_nonzero().get() as usize) + } +} + +#[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) +} + +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(sig: Signal) -> Self { + pass_usize(sig as usize) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(advice: crate::fs::Advice) -> Self { + c_uint(advice as c::c_uint) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::fs::SealFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "io_uring")] +impl<'a, Num: ArgNumber> From 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 for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::time::TimerfdFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "time")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::time::TimerfdTimerFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "rand")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::rand::GetRandomFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::net::RecvFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::net::SendFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::net::AcceptFlags) -> Self { + c_uint(flags.bits()) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From 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::thread::FutexOperation, crate::thread::FutexFlags)> + for ArgReg<'a, Num> +{ + #[inline] + fn from(pair: (crate::thread::FutexOperation, crate::thread::FutexFlags)) -> Self { + c_uint(pair.0 as u32 | pair.1.bits()) + } +} + +#[cfg(feature = "fs")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(access: crate::fs::Access) -> Self { + c_uint(access.bits()) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(type_: crate::net::SocketType) -> Self { + c_uint(type_.0) + } +} + +#[cfg(feature = "net")] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(protocol: crate::net::Protocol) -> Self { + c_uint(protocol.0) + } +} + +impl<'a, Num: ArgNumber, T> From<&'a mut MaybeUninit> for ArgReg<'a, Num> { + #[inline] + fn from(t: &'a mut MaybeUninit) -> Self { + raw_arg(t.as_mut_ptr().cast()) + } +} + +#[cfg(feature = "fs")] +#[cfg(any(target_os = "android", target_os = "linux"))] +impl<'a, Num: ArgNumber> From for ArgReg<'a, Num> { + #[inline] + fn from(flags: crate::backend::fs::types::MountFlagsArg) -> Self { + c_uint(flags.0) + } +} + +/// 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) -> 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(feature = "runtime")] +#[inline] +pub(super) unsafe fn ret_error(raw: RetReg) -> 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) { + #[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) -> io::Result { + 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) -> io::Result { + 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) -> io::Result { + 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) -> io::Result { + 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) -> usize { + #[cfg(debug_assertions)] + { + try_decode_usize(raw).unwrap() + } + #[cfg(not(debug_assertions))] + { + decode_usize_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) -> io::Result { + 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) -> 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) -> io::Result<*mut c::c_void> { + try_decode_void_star(raw) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/c.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/c.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/c.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/c.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,29 @@ +//! 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)] + +pub(crate) use linux_raw_sys::ctypes::*; +pub(crate) use linux_raw_sys::errno::EINVAL; +pub(crate) use linux_raw_sys::general::{ + AF_DECnet, __kernel_sa_family_t as sa_family_t, __kernel_sockaddr_storage as sockaddr_storage, + in6_addr, in_addr, iovec, ip_mreq, ipv6_mreq, linger, sockaddr, sockaddr_in, sockaddr_in6, + sockaddr_un, socklen_t, 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, IPPROTO_AH, IPPROTO_BEETPH, IPPROTO_COMP, IPPROTO_DCCP, IPPROTO_EGP, IPPROTO_ENCAP, + IPPROTO_ESP, IPPROTO_ETHERNET, IPPROTO_FRAGMENT, IPPROTO_GRE, IPPROTO_ICMP, IPPROTO_ICMPV6, + IPPROTO_IDP, IPPROTO_IGMP, IPPROTO_IP, IPPROTO_IPIP, IPPROTO_IPV6, IPPROTO_MH, IPPROTO_MPLS, + IPPROTO_MPTCP, IPPROTO_MTP, IPPROTO_PIM, IPPROTO_PUP, IPPROTO_RAW, IPPROTO_ROUTING, + IPPROTO_RSVP, IPPROTO_SCTP, IPPROTO_TCP, IPPROTO_TP, IPPROTO_UDP, IPPROTO_UDPLITE, + IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_MULTICAST_LOOP, IPV6_V6ONLY, IP_ADD_MEMBERSHIP, + IP_DROP_MEMBERSHIP, IP_MULTICAST_LOOP, IP_MULTICAST_TTL, IP_TTL, MSG_CMSG_CLOEXEC, MSG_CONFIRM, + MSG_DONTROUTE, MSG_DONTWAIT, MSG_EOR, MSG_ERRQUEUE, MSG_MORE, MSG_NOSIGNAL, MSG_OOB, MSG_PEEK, + MSG_TRUNC, MSG_WAITALL, O_CLOEXEC, O_NONBLOCK, SHUT_RD, SHUT_RDWR, SHUT_WR, SOCK_DGRAM, + SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET, SOCK_STREAM, SOL_SOCKET, SO_BROADCAST, SO_LINGER, + SO_PASSCRED, SO_RCVTIMEO_NEW, SO_RCVTIMEO_OLD, SO_REUSEADDR, SO_SNDTIMEO_NEW, SO_SNDTIMEO_OLD, + SO_TYPE, TCP_NODELAY, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/elf.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/elf.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/elf.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/elf.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,176 @@ +//! The ELF ABI. + +#![allow(non_snake_case)] +#![cfg_attr( + all(not(target_vendor = "mustang"), feature = "use-libc-auxv"), + allow(dead_code) +)] + +pub(super) const SELFMAG: usize = 4; +pub(super) const ELFMAG: [u8; SELFMAG] = [0x7f, b'E', b'L', b'F']; +pub(super) const EI_CLASS: usize = 4; +pub(super) const EI_DATA: usize = 5; +pub(super) const EI_VERSION: usize = 6; +pub(super) const EI_OSABI: usize = 7; +pub(super) const EI_ABIVERSION: usize = 8; +pub(super) const EV_CURRENT: u8 = 1; +#[cfg(target_pointer_width = "32")] +pub(super) const ELFCLASS: u8 = 1; // ELFCLASS32 +#[cfg(target_pointer_width = "64")] +pub(super) const ELFCLASS: u8 = 2; // ELFCLASS64 +#[cfg(target_endian = "little")] +pub(super) const ELFDATA: u8 = 1; // ELFDATA2LSB +#[cfg(target_endian = "big")] +pub(super) const ELFDATA: u8 = 2; // ELFDATA2MSB +pub(super) const ELFOSABI_SYSV: u8 = 0; +pub(super) const ELFOSABI_LINUX: u8 = 3; +// At present all of our supported platforms use 0. +pub(super) const ELFABIVERSION: u8 = 0; +pub(super) const ET_DYN: u16 = 3; +pub(super) const EI_NIDENT: usize = 16; +pub(super) const SHN_UNDEF: u16 = 0; +pub(super) const SHN_ABS: u16 = 0xfff1; +pub(super) const PN_XNUM: u16 = 0xffff; +pub(super) const PT_LOAD: u32 = 1; +pub(super) const PT_DYNAMIC: u32 = 2; +pub(super) const PT_INTERP: u32 = 3; +pub(super) const PT_PHDR: u32 = 6; +pub(super) const PT_TLS: u32 = 7; +pub(super) const PT_GNU_STACK: u32 = 0x6474_e551; +pub(super) const PT_GNU_RELRO: u32 = 0x6474_e552; +pub(super) const PF_X: u32 = 1; +pub(super) const PF_W: u32 = 2; +pub(super) const PF_R: u32 = 4; +pub(super) const DT_NULL: i32 = 0; +pub(super) const DT_HASH: i32 = 4; +pub(super) const DT_STRTAB: i32 = 5; +pub(super) const DT_SYMTAB: i32 = 6; +pub(super) const DT_SYMENT: i32 = 11; +pub(super) const DT_VERSYM: i32 = 0x6fff_fff0; +pub(super) const DT_VERDEF: i32 = 0x6fff_fffc; +pub(super) const STB_WEAK: u8 = 2; +pub(super) const STB_GLOBAL: u8 = 1; +pub(super) const STT_NOTYPE: u8 = 0; +pub(super) const STT_FUNC: u8 = 2; +pub(super) const STN_UNDEF: u32 = 0; +pub(super) const VER_FLG_BASE: u16 = 0x1; +pub(super) const VER_DEF_CURRENT: u16 = 1; +pub(super) const STV_DEFAULT: u8 = 0; +#[cfg(target_arch = "arm")] +pub(super) const EM_CURRENT: u16 = 40; // EM_ARM +#[cfg(target_arch = "x86")] +pub(super) const EM_CURRENT: u16 = 3; // EM_386 +#[cfg(target_arch = "powerpc64")] +pub(super) const EM_CURRENT: u16 = 21; // EM_PPC64 +#[cfg(any(target_arch = "mips", target_arch = "mips64"))] +pub(super) const EM_CURRENT: u16 = 8; // EM_MIPS +#[cfg(target_arch = "x86_64")] +pub(super) const EM_CURRENT: u16 = 62; // EM_X86_64 +#[cfg(target_arch = "aarch64")] +pub(super) const EM_CURRENT: u16 = 183; // EM_AARCH64 +#[cfg(target_arch = "riscv64")] +pub(super) const EM_CURRENT: u16 = 243; // EM_RISCV + +#[inline] +pub(super) const fn ELF_ST_VISIBILITY(o: u8) -> u8 { + o & 0x03 +} + +#[inline] +pub(super) const fn ELF_ST_BIND(val: u8) -> u8 { + val >> 4 +} + +#[inline] +pub(super) const fn ELF_ST_TYPE(val: u8) -> u8 { + val & 0xf +} + +#[repr(C)] +pub(super) struct Elf_Ehdr { + pub(super) e_ident: [u8; EI_NIDENT], + pub(super) e_type: u16, + pub(super) e_machine: u16, + pub(super) e_version: u32, + pub(super) e_entry: usize, + pub(super) e_phoff: usize, + pub(super) e_shoff: usize, + pub(super) e_flags: u32, + pub(super) e_ehsize: u16, + pub(super) e_phentsize: u16, + pub(super) e_phnum: u16, + pub(super) e_shentsize: u16, + pub(super) e_shnum: u16, + pub(super) e_shstrndx: u16, +} + +#[cfg(target_pointer_width = "32")] +#[repr(C)] +pub(super) struct Elf_Phdr { + pub(super) p_type: u32, + pub(super) p_offset: usize, + pub(super) p_vaddr: usize, + pub(super) p_paddr: usize, + pub(super) p_filesz: usize, + pub(super) p_memsz: usize, + pub(super) p_flags: u32, + pub(super) p_align: usize, +} + +#[cfg(target_pointer_width = "64")] +#[repr(C)] +pub(super) struct Elf_Phdr { + pub(super) p_type: u32, + pub(super) p_flags: u32, + pub(super) p_offset: usize, + pub(super) p_vaddr: usize, + pub(super) p_paddr: usize, + pub(super) p_filesz: usize, + pub(super) p_memsz: usize, + pub(super) p_align: usize, +} + +#[cfg(target_pointer_width = "32")] +#[repr(C)] +pub(super) struct Elf_Sym { + pub(super) st_name: u32, + pub(super) st_value: usize, + pub(super) st_size: usize, + pub(super) st_info: u8, + pub(super) st_other: u8, + pub(super) st_shndx: u16, +} + +#[cfg(target_pointer_width = "64")] +#[repr(C)] +pub(super) struct Elf_Sym { + pub(super) st_name: u32, + pub(super) st_info: u8, + pub(super) st_other: u8, + pub(super) st_shndx: u16, + pub(super) st_value: usize, + pub(super) st_size: usize, +} + +#[repr(C)] +pub(super) struct Elf_Dyn { + pub(super) d_tag: i32, + pub(super) d_val: usize, +} + +#[repr(C)] +pub(super) struct Elf_Verdef { + pub(super) vd_version: u16, + pub(super) vd_flags: u16, + pub(super) vd_ndx: u16, + pub(super) vd_cnt: u16, + pub(super) vd_hash: u32, + pub(super) vd_aux: u32, + pub(super) vd_next: u32, +} + +#[repr(C)] +pub(super) struct Elf_Verdaux { + pub(super) vda_name: u32, + pub(super) _vda_next: u32, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/dir.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/dir.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/dir.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/dir.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,225 @@ +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; +use crate::process::fchdir; +use crate::utils::as_ptr; +use alloc::borrow::ToOwned; +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, + + buf: Vec, + pos: usize, + next: Option, +} + +impl Dir { + /// Construct a `Dir` that reads entries from the given directory + /// file descriptor. + #[inline] + pub fn read_from(fd: Fd) -> io::Result { + Self::_read_from(fd.as_fd()) + } + + #[inline] + fn _read_from(fd: BorrowedFd<'_>) -> io::Result { + let flags = fcntl_getfl(fd)?; + let fd_for_dir = openat(fd, cstr!("."), flags | OFlags::CLOEXEC, Mode::empty())?; + + Ok(Self { + fd: fd_for_dir, + buf: Vec::new(), + pos: 0, + next: None, + }) + } + + /// `rewinddir(self)` + #[inline] + pub fn rewind(&mut self) { + self.pos = self.buf.len(); + self.next = Some(0); + } + + /// `readdir(self)`, where `None` means the end of the directory. + pub fn read(&mut self) -> Option> { + if let Some(next) = self.next.take() { + match crate::backend::fs::syscalls::_seek(self.fd.as_fd(), next as i64, SEEK_SET) { + Ok(_) => (), + Err(err) => 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_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::() { + match self.read_more()? { + Ok(()) => (), + Err(e) => return Some(Err(e)), + } + } + + // 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_start + name_len + 1]).unwrap(); + let name = name.to_owned(); + assert!(name.as_bytes().len() <= self.buf.len() - name_start); + + // Do an unaligned u64 load. + 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], + ]); + + 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: 0, + d_type, + d_reclen, + d_name: Default::default(), + }; + + Some(Ok(DirEntry { + d_ino, + d_type, + name, + })) + } + + fn read_more(&mut self) -> Option> { + let og_len = self.buf.len(); + // Capacity increment currently chosen by wild guess. + self.buf + .resize(self.buf.capacity() + 32 * size_of::(), 0); + let nread = match crate::backend::fs::syscalls::getdents(self.fd.as_fd(), &mut self.buf) { + Ok(nread) => nread, + Err(err) => { + self.buf.resize(og_len, 0); + 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 { + fstat(&self.fd) + } + + /// `fstatfs(self)` + #[inline] + pub fn statfs(&self) -> io::Result { + fstatfs(&self.fd) + } + + /// `fstatvfs(self)` + #[inline] + pub fn statvfs(&self) -> io::Result { + fstatvfs(&self.fd) + } + + /// `fchdir(self)` + #[inline] + pub fn chdir(&self) -> io::Result<()> { + fchdir(&self.fd) + } +} + +impl Iterator for Dir { + type Item = io::Result; + + #[inline] + fn next(&mut self) -> Option { + 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, + name: CString, +} + +impl DirEntry { + /// Returns the file name of this directory entry. + #[inline] + pub fn file_name(&self) -> &CStr { + &self.name + } + + /// 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 + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/makedev.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/makedev.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/makedev.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/makedev.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4 @@ +pub(crate) mod dir; +pub(crate) mod makedev; +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1415 @@ +//! linux_raw syscalls supporting `rustix::fs`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(dead_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::c; +use super::super::conv::{ + by_ref, c_int, c_uint, dev_t, oflags_for_open_how, opt_mut, pass_usize, raw_fd, ret, ret_c_int, + ret_c_uint, ret_owned_fd, ret_usize, size_of, slice_mut, zero, +}; +#[cfg(target_pointer_width = "64")] +use super::super::conv::{loff_t, loff_t_from_u64, ret_u64}; +#[cfg(any( + target_arch = "aarch64", + target_arch = "riscv64", + target_arch = "mips64", + target_pointer_width = "32", +))] +use crate::fd::AsFd; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::ffi::CStr; +use crate::fs::{ + Access, Advice, AtFlags, FallocateFlags, FileType, FlockOperation, MemfdFlags, Mode, OFlags, + RenameFlags, ResolveFlags, SealFlags, Stat, StatFs, StatVfs, StatVfsMountFlags, StatxFlags, + Timestamps, +}; +use crate::io::{self, SeekFrom}; +use crate::process::{Gid, Uid}; +use core::convert::TryInto; +use core::mem::MaybeUninit; +#[cfg(target_arch = "mips64")] +use linux_raw_sys::general::stat as linux_stat64; +use linux_raw_sys::general::{ + __kernel_fsid_t, __kernel_timespec, open_how, statx, AT_EACCESS, AT_FDCWD, AT_REMOVEDIR, + AT_SYMLINK_NOFOLLOW, F_ADD_SEALS, F_GETFL, F_GETLEASE, F_GETOWN, F_GETPIPE_SZ, F_GETSIG, + F_GET_SEALS, F_SETFL, F_SETPIPE_SZ, SEEK_CUR, SEEK_END, SEEK_SET, STATX__RESERVED, +}; +#[cfg(target_pointer_width = "32")] +use { + super::super::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(filename: &CStr, flags: OFlags, mode: Mode) -> io::Result { + #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] + { + openat(crate::fs::cwd().as_fd(), filename, flags, mode) + } + #[cfg(all( + target_pointer_width = "32", + not(any(target_arch = "aarch64", target_arch = "riscv64")), + ))] + unsafe { + ret_owned_fd(syscall_readonly!(__NR_open, filename, flags, mode)) + } + #[cfg(all( + target_pointer_width = "64", + not(any(target_arch = "aarch64", target_arch = "riscv64")), + ))] + unsafe { + ret_owned_fd(syscall_readonly!(__NR_open, filename, flags, mode)) + } +} + +#[inline] +pub(crate) fn openat( + dirfd: BorrowedFd<'_>, + filename: &CStr, + flags: OFlags, + mode: Mode, +) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_owned_fd(syscall_readonly!(__NR_openat, dirfd, filename, flags, mode)) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_owned_fd(syscall_readonly!(__NR_openat, dirfd, filename, flags, mode)) + } +} + +#[inline] +pub(crate) fn openat2( + dirfd: BorrowedFd<'_>, + pathname: &CStr, + flags: OFlags, + mode: Mode, + resolve: ResolveFlags, +) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_owned_fd(syscall_readonly!( + __NR_openat2, + dirfd, + pathname, + by_ref(&open_how { + flags: oflags_for_open_how(flags), + mode: u64::from(mode.bits()), + resolve: resolve.bits(), + }), + size_of::() + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_owned_fd(syscall_readonly!( + __NR_openat2, + dirfd, + pathname, + by_ref(&open_how { + flags: oflags_for_open_how(flags), + mode: u64::from(mode.bits()), + resolve: resolve.bits(), + }), + size_of::() + )) + } +} + +#[inline] +pub(crate) fn chmod(filename: &CStr, mode: Mode) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_fchmodat, + raw_fd(AT_FDCWD), + filename, + mode + )) + } +} + +#[inline] +pub(crate) fn chmodat(dirfd: BorrowedFd<'_>, filename: &CStr, mode: Mode) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_fchmodat, dirfd, filename, 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<'_>, + filename: &CStr, + owner: Option, + group: Option, + flags: AtFlags, +) -> io::Result<()> { + unsafe { + let (ow, gr) = crate::process::translate_fchown_args(owner, group); + ret(syscall_readonly!( + __NR_fchownat, + dirfd, + filename, + c_uint(ow), + c_uint(gr), + flags + )) + } +} + +#[inline] +pub(crate) fn fchown(fd: BorrowedFd<'_>, owner: Option, group: Option) -> io::Result<()> { + unsafe { + let (ow, gr) = crate::process::translate_fchown_args(owner, group); + ret(syscall_readonly!(__NR_fchown, fd, c_uint(ow), c_uint(gr))) + } +} + +#[inline] +pub(crate) fn mknodat( + dirfd: BorrowedFd<'_>, + filename: &CStr, + file_type: FileType, + mode: Mode, + dev: u64, +) -> io::Result<()> { + #[cfg(target_pointer_width = "32")] + unsafe { + ret(syscall_readonly!( + __NR_mknodat, + dirfd, + filename, + (mode, file_type), + dev_t(dev)? + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret(syscall_readonly!( + __NR_mknodat, + dirfd, + filename, + (mode, file_type), + dev_t(dev) + )) + } +} + +#[inline] +pub(crate) fn seek(fd: BorrowedFd<'_>, pos: SeekFrom) -> io::Result { + 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), + }; + _seek(fd, offset, whence) +} + +#[inline] +pub(crate) fn _seek(fd: BorrowedFd<'_>, offset: i64, whence: c::c_uint) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut result = MaybeUninit::::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 { + _seek(fd, 0, SEEK_CUR).map(|x| x as u64) +} + +#[inline] +pub(crate) fn ftruncate(fd: BorrowedFd<'_>, length: u64) -> io::Result<()> { + // + #[cfg(all( + target_pointer_width = "32", + any(target_arch = "arm", target_arch = "mips", 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 = "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: u64, advice: Advice) -> io::Result<()> { + // 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(target_arch = "mips")] + unsafe { + ret(syscall_readonly!( + __NR_fadvise64, + fd, + zero(), + hi(pos), + lo(pos), + hi(len), + lo(len), + advice + )) + } + #[cfg(all( + target_pointer_width = "32", + not(any(target_arch = "arm", target_arch = "mips", target_arch = "powerpc")), + ))] + unsafe { + ret(syscall_readonly!( + __NR_fadvise64_64, + fd, + hi(pos), + lo(pos), + hi(len), + lo(len), + advice + )) + } + #[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!(__NR_flock, fd, c_uint(operation as c::c_uint))) } +} + +#[inline] +pub(crate) fn fstat(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] + { + match 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")))] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_fstat, fd, &mut result))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] +fn fstat_old(fd: BorrowedFd<'_>) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(target_arch = "mips64")] + 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(filename: &CStr) -> io::Result { + #[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] + { + match statx( + crate::fs::cwd().as_fd(), + filename, + AtFlags::empty(), + StatxFlags::BASIC_STATS, + ) { + Ok(x) => statx_to_stat(x), + Err(io::Errno::NOSYS) => stat_old(filename), + Err(err) => Err(err), + } + } + + #[cfg(all(target_pointer_width = "64", not(target_arch = "mips64")))] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!( + __NR_newfstatat, + raw_fd(AT_FDCWD), + filename, + &mut result, + c_uint(0) + ))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] +fn stat_old(filename: &CStr) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(target_arch = "mips64")] + unsafe { + ret(syscall!( + __NR_newfstatat, + raw_fd(AT_FDCWD), + filename, + &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), + filename, + &mut result, + c_uint(0) + ))?; + stat_to_stat(result.assume_init()) + } +} + +#[inline] +pub(crate) fn statat(dirfd: BorrowedFd<'_>, filename: &CStr, flags: AtFlags) -> io::Result { + #[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] + { + match statx(dirfd, filename, flags, StatxFlags::BASIC_STATS) { + Ok(x) => statx_to_stat(x), + Err(io::Errno::NOSYS) => statat_old(dirfd, filename, flags), + Err(err) => Err(err), + } + } + + #[cfg(all(target_pointer_width = "64", not(target_arch = "mips64")))] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!( + __NR_newfstatat, + dirfd, + filename, + &mut result, + flags + ))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] +fn statat_old(dirfd: BorrowedFd<'_>, filename: &CStr, flags: AtFlags) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(target_arch = "mips64")] + unsafe { + ret(syscall!( + __NR_newfstatat, + dirfd, + filename, + &mut result, + flags + ))?; + stat_to_stat(result.assume_init()) + } + + #[cfg(target_pointer_width = "32")] + unsafe { + ret(syscall!( + __NR_fstatat64, + dirfd, + filename, + &mut result, + flags + ))?; + stat_to_stat(result.assume_init()) + } +} + +#[inline] +pub(crate) fn lstat(filename: &CStr) -> io::Result { + #[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] + { + match statx( + crate::fs::cwd().as_fd(), + filename, + AtFlags::SYMLINK_NOFOLLOW, + StatxFlags::BASIC_STATS, + ) { + Ok(x) => statx_to_stat(x), + Err(io::Errno::NOSYS) => lstat_old(filename), + Err(err) => Err(err), + } + } + + #[cfg(all(target_pointer_width = "64", not(target_arch = "mips64")))] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!( + __NR_newfstatat, + raw_fd(AT_FDCWD), + filename, + &mut result, + c_uint(AT_SYMLINK_NOFOLLOW) + ))?; + Ok(result.assume_init()) + } +} + +#[cfg(any(target_pointer_width = "32", target_arch = "mips64"))] +fn lstat_old(filename: &CStr) -> io::Result { + let mut result = MaybeUninit::::uninit(); + + #[cfg(target_arch = "mips64")] + unsafe { + ret(syscall!( + __NR_newfstatat, + raw_fd(AT_FDCWD), + filename, + &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), + filename, + &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"))] +fn statx_to_stat(x: crate::fs::Statx) -> io::Result { + 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: x + .stx_atime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_atime_nsec: x.stx_atime.tv_nsec.into(), + st_mtime: x + .stx_mtime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_mtime_nsec: x.stx_mtime.tv_nsec.into(), + st_ctime: x + .stx_ctime + .tv_sec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + 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 { + 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: s64.st_atime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_atime_nsec: s64 + .st_atime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_mtime: s64.st_mtime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_mtime_nsec: s64 + .st_mtime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_ctime: s64.st_ctime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + 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(target_arch = "mips64")] +fn stat_to_stat(s: linux_raw_sys::general::stat) -> io::Result { + 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: s.st_atime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_atime_nsec: s + .st_atime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_mtime: s.st_mtime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + st_mtime_nsec: s + .st_mtime_nsec + .try_into() + .map_err(|_| io::Errno::OVERFLOW)?, + st_ctime: s.st_ctime.try_into().map_err(|_| io::Errno::OVERFLOW)?, + 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<'_>, + pathname: &CStr, + flags: AtFlags, + mask: StatxFlags, +) -> io::Result { + // 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/20200505095915.11275-7-mszeredi@redhat.com/ + if (mask.bits() & STATX__RESERVED) == STATX__RESERVED { + return Err(io::Errno::INVAL); + } + let mask = mask & StatxFlags::all(); + + unsafe { + let mut statx_buf = MaybeUninit::::uninit(); + ret(syscall!( + __NR_statx, + dirfd, + pathname, + flags, + mask, + &mut statx_buf + ))?; + Ok(statx_buf.assume_init()) + } +} + +#[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(syscall!( + __NR_statx, + raw_fd(AT_FDCWD), + zero(), + zero(), + zero(), + zero() + )), + Err(io::Errno::FAULT) + ) + } +} + +#[inline] +pub(crate) fn fstatfs(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!( + __NR_fstatfs64, + fd, + size_of::(), + &mut result + ))?; + Ok(result.assume_init()) + } + + #[cfg(target_pointer_width = "64")] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_fstatfs, fd, &mut result))?; + Ok(result.assume_init()) + } +} + +#[inline] +pub(crate) fn fstatvfs(fd: BorrowedFd<'_>) -> io::Result { + // 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(filename: &CStr) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!( + __NR_statfs64, + filename, + size_of::(), + &mut result + ))?; + Ok(result.assume_init()) + } + #[cfg(target_pointer_width = "64")] + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_statfs, filename, &mut result))?; + Ok(result.assume_init()) + } +} + +#[inline] +pub(crate) fn statvfs(filename: &CStr) -> io::Result { + // Linux doesn't have a `statvfs` syscall; we have to do `statfs` and + // translate the fields as best we can. + let statfs = statfs(filename)?; + + Ok(statfs_to_statvfs(statfs)) +} + +fn statfs_to_statvfs(statfs: StatFs) -> StatVfs { + let __kernel_fsid_t { val } = statfs.f_fsid; + 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: f_fsid_val0 as u32 as u64 | ((f_fsid_val1 as u32 as u64) << 32), + f_flag: unsafe { StatVfsMountFlags::from_bits_unchecked(statfs.f_flags as u64) }, + f_namemax: statfs.f_namelen as u64, + } +} + +#[inline] +pub(crate) fn readlink(path: &CStr, buf: &mut [u8]) -> io::Result { + 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) fn readlinkat(dirfd: BorrowedFd<'_>, path: &CStr, buf: &mut [u8]) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + unsafe { + ret_usize(syscall!( + __NR_readlinkat, + dirfd, + path, + buf_addr_mut, + buf_len + )) + } +} + +#[inline] +pub(crate) fn fcntl_getfl(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_uint(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETFL))) + .map(OFlags::from_bits_truncate) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_c_uint(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETFL))) + .map(OFlags::from_bits_truncate) + } +} + +#[inline] +pub(crate) fn fcntl_setfl(fd: BorrowedFd<'_>, flags: OFlags) -> io::Result<()> { + #[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_getlease(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETLEASE))) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETLEASE))) + } +} + +#[inline] +pub(crate) fn fcntl_getown(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETOWN))) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETOWN))) + } +} + +#[inline] +pub(crate) fn fcntl_getsig(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETSIG))) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETSIG))) + } +} + +#[inline] +pub(crate) fn fcntl_getpipe_sz(fd: BorrowedFd<'_>) -> io::Result { + #[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_sz(fd: BorrowedFd<'_>, size: c::c_int) -> io::Result { + #[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) + )) + } +} + +#[inline] +pub(crate) fn fcntl_get_seals(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_int(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GET_SEALS))) + .map(|seals| SealFlags::from_bits_unchecked(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_unchecked(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 rename(oldname: &CStr, newname: &CStr) -> io::Result<()> { + #[cfg(target_arch = "riscv64")] + unsafe { + ret(syscall_readonly!( + __NR_renameat2, + raw_fd(AT_FDCWD), + oldname, + raw_fd(AT_FDCWD), + newname, + c_uint(0) + )) + } + #[cfg(not(target_arch = "riscv64"))] + unsafe { + ret(syscall_readonly!( + __NR_renameat, + raw_fd(AT_FDCWD), + oldname, + raw_fd(AT_FDCWD), + newname + )) + } +} + +#[inline] +pub(crate) fn renameat( + old_dirfd: BorrowedFd<'_>, + oldname: &CStr, + new_dirfd: BorrowedFd<'_>, + newname: &CStr, +) -> io::Result<()> { + #[cfg(target_arch = "riscv64")] + unsafe { + ret(syscall_readonly!( + __NR_renameat2, + old_dirfd, + oldname, + new_dirfd, + newname, + c_uint(0) + )) + } + #[cfg(not(target_arch = "riscv64"))] + unsafe { + ret(syscall_readonly!( + __NR_renameat, + old_dirfd, + oldname, + new_dirfd, + newname + )) + } +} + +#[inline] +pub(crate) fn renameat2( + old_dirfd: BorrowedFd<'_>, + oldname: &CStr, + new_dirfd: BorrowedFd<'_>, + newname: &CStr, + flags: RenameFlags, +) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_renameat2, + old_dirfd, + oldname, + new_dirfd, + newname, + flags + )) + } +} + +#[inline] +pub(crate) fn unlink(pathname: &CStr) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_unlinkat, + raw_fd(AT_FDCWD), + pathname, + c_uint(0) + )) + } +} + +#[inline] +pub(crate) fn unlinkat(dirfd: BorrowedFd<'_>, pathname: &CStr, flags: AtFlags) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_unlinkat, dirfd, pathname, flags)) } +} + +#[inline] +pub(crate) fn rmdir(pathname: &CStr) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_unlinkat, + raw_fd(AT_FDCWD), + pathname, + c_uint(AT_REMOVEDIR) + )) + } +} + +#[inline] +pub(crate) fn link(oldname: &CStr, newname: &CStr) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_linkat, + raw_fd(AT_FDCWD), + oldname, + raw_fd(AT_FDCWD), + newname, + c_uint(0) + )) + } +} + +#[inline] +pub(crate) fn linkat( + old_dirfd: BorrowedFd<'_>, + oldname: &CStr, + new_dirfd: BorrowedFd<'_>, + newname: &CStr, + flags: AtFlags, +) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_linkat, + old_dirfd, + oldname, + new_dirfd, + newname, + flags + )) + } +} + +#[inline] +pub(crate) fn symlink(oldname: &CStr, newname: &CStr) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_symlinkat, + oldname, + raw_fd(AT_FDCWD), + newname + )) + } +} + +#[inline] +pub(crate) fn symlinkat(oldname: &CStr, dirfd: BorrowedFd<'_>, newname: &CStr) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_symlinkat, oldname, dirfd, newname)) } +} + +#[inline] +pub(crate) fn mkdir(pathname: &CStr, mode: Mode) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_mkdirat, + raw_fd(AT_FDCWD), + pathname, + mode + )) + } +} + +#[inline] +pub(crate) fn mkdirat(dirfd: BorrowedFd<'_>, pathname: &CStr, mode: Mode) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_mkdirat, dirfd, pathname, mode)) } +} + +#[inline] +pub(crate) fn getdents(fd: BorrowedFd<'_>, dirent: &mut [u8]) -> io::Result { + 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], +) -> io::Result { + 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<'_>, + pathname: &CStr, + times: &Timestamps, + flags: AtFlags, +) -> io::Result<()> { + _utimensat(dirfd, Some(pathname), times, flags) +} + +#[inline] +fn _utimensat( + dirfd: BorrowedFd<'_>, + pathname: Option<&CStr>, + times: &Timestamps, + flags: AtFlags, +) -> io::Result<()> { + // Assert that `Timestamps` has the expected layout. + let _ = unsafe { core::mem::transmute::(times.clone()) }; + + #[cfg(target_pointer_width = "32")] + unsafe { + match ret(syscall_readonly!( + __NR_utimensat_time64, + dirfd, + pathname, + by_ref(times), + flags + )) { + Err(io::Errno::NOSYS) => _utimensat_old(dirfd, pathname, times, flags), + otherwise => otherwise, + } + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret(syscall_readonly!( + __NR_utimensat, + dirfd, + pathname, + by_ref(times), + flags + )) + } +} + +#[cfg(target_pointer_width = "32")] +unsafe fn _utimensat_old( + dirfd: BorrowedFd<'_>, + pathname: Option<&CStr>, + times: &Timestamps, + flags: AtFlags, +) -> io::Result<()> { + // See the comments in `rustix_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, + pathname, + old_times_addr, + flags + )) +} + +#[inline] +pub(crate) fn futimens(fd: BorrowedFd<'_>, times: &Timestamps) -> io::Result<()> { + _utimensat(fd, None, times, AtFlags::empty()) +} + +pub(crate) fn accessat( + dirfd: BorrowedFd<'_>, + path: &CStr, + access: Access, + flags: AtFlags, +) -> io::Result<()> { + // 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::process::getuid() == crate::process::geteuid() + && crate::process::getgid() == crate::process::getegid()) + { + return unsafe { ret(syscall_readonly!(__NR_faccessat, dirfd, path, access)) }; + } + + if flags.bits() != AT_EACCESS { + return Err(io::Errno::INVAL); + } + + // TODO: Use faccessat2 in newer Linux versions. + Err(io::Errno::NOSYS) +} + +#[inline] +pub(crate) fn copy_file_range( + fd_in: BorrowedFd<'_>, + off_in: Option<&mut u64>, + fd_out: BorrowedFd<'_>, + off_out: Option<&mut u64>, + len: u64, +) -> io::Result { + let len: usize = len.try_into().unwrap_or(usize::MAX); + _copy_file_range(fd_in, off_in, fd_out, off_out, len, 0).map(|result| result as u64) +} + +#[inline] +fn _copy_file_range( + fd_in: BorrowedFd<'_>, + off_in: Option<&mut u64>, + fd_out: BorrowedFd<'_>, + off_out: Option<&mut u64>, + len: usize, + flags: c::c_uint, +) -> io::Result { + 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(flags) + )) + } +} + +#[inline] +pub(crate) fn memfd_create(name: &CStr, flags: MemfdFlags) -> io::Result { + 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 { + #[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] +#[cfg(any(target_os = "android", target_os = "linux"))] +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 + )) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/fs/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,732 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `*_OK` constants for use with [`accessat`]. + /// + /// [`accessat`]: fn.accessat.html + pub struct Access: c::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; + } +} + +bitflags! { + /// `AT_*` constants for use with [`openat`], [`statat`], and other `*at` + /// functions. + /// + /// [`openat`]: crate::fs::openat + /// [`statat`]: crate::fs::statat + pub struct AtFlags: c::c_uint { + /// `AT_REMOVEDIR` + const REMOVEDIR = linux_raw_sys::general::AT_REMOVEDIR; + + /// `AT_SYMLINK_FOLLOW` + const SYMLINK_FOLLOW = linux_raw_sys::general::AT_SYMLINK_FOLLOW; + + /// `AT_SYMLINK_NOFOLLOW` + const SYMLINK_NOFOLLOW = linux_raw_sys::general::AT_SYMLINK_NOFOLLOW; + + /// `AT_EMPTY_PATH` + const EMPTY_PATH = linux_raw_sys::general::AT_EMPTY_PATH; + + /// `AT_EACCESS` + const EACCESS = linux_raw_sys::general::AT_EACCESS; + + /// `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; + } +} + +bitflags! { + /// `S_I*` constants for use with [`openat`], [`chmodat`], and [`fchmod`]. + /// + /// [`openat`]: crate::fs::openat + /// [`chmodat`]: crate::fs::chmodat + /// [`fchmod`]: crate::fs::fchmod + 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; + } +} + +impl Mode { + /// Construct a `Mode` from the mode bits of the `st_mode` field of a + /// `Stat`. + #[inline] + pub const fn from_raw_mode(st_mode: RawMode) -> Self { + Self::from_bits_truncate(st_mode) + } + + /// Construct an `st_mode` value from `Stat`. + #[inline] + pub const fn as_raw_mode(self) -> RawMode { + self.bits() + } +} + +bitflags! { + /// `O_*` constants for use with [`openat`]. + /// + /// [`openat`]: crate::fs::openat + pub struct OFlags: c::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. + /// + /// Some implementations include `O_PATH` in `O_ACCMODE`, when + /// sometimes we really just want the read/write bits. Caution is + /// indicated, as the presence of `O_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`. Linux 2.6.32 only supports `O_SYNC`. + const DSYNC = linux_raw_sys::general::O_SYNC; + + /// `O_EXCL` + const EXCL = linux_raw_sys::general::O_EXCL; + + /// `O_FSYNC`. Linux 2.6.32 only supports `O_SYNC`. + 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` + const RDWR = linux_raw_sys::general::O_RDWR; + + /// `O_NOCTTY` + const NOCTTY = linux_raw_sys::general::O_NOCTTY; + + /// `O_RSYNC`. Linux 2.6.32 only supports `O_SYNC`. + 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; + } +} + +bitflags! { + /// `RESOLVE_*` constants for use with [`openat2`]. + /// + /// [`openat2`]: crate::fs::openat2 + #[derive(Default)] + 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; + } +} + +bitflags! { + /// `RENAME_*` constants for use with [`renameat_with`]. + /// + /// [`renameat_with`]: crate::fs::renameat_with + pub struct RenameFlags: c::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; + } +} + +/// `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` + 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 `Stat`. + #[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 `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 + pub struct MemfdFlags: c::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_HUGE_64KB` + const HUGE_64KB = linux_raw_sys::general::MFD_HUGE_64KB; + /// `MFD_HUGE_512JB` + 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; + } +} + +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 + 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; + } +} + +bitflags! { + /// `STATX_*` constants for use with [`statx`]. + /// + /// [`statx`]: crate::fs::statx + pub struct StatxFlags: u32 { + /// `STATX_TYPE` + const TYPE = linux_raw_sys::general::STATX_TYPE; + + /// `STATX_MODE` + const MODE = linux_raw_sys::general::STATX_MODE; + + /// `STATX_NLINK` + const NLINK = linux_raw_sys::general::STATX_NLINK; + + /// `STATX_UID` + const UID = linux_raw_sys::general::STATX_UID; + + /// `STATX_GID` + const GID = linux_raw_sys::general::STATX_GID; + + /// `STATX_ATIME` + const ATIME = linux_raw_sys::general::STATX_ATIME; + + /// `STATX_MTIME` + const MTIME = linux_raw_sys::general::STATX_MTIME; + + /// `STATX_CTIME` + const CTIME = linux_raw_sys::general::STATX_CTIME; + + /// `STATX_INO` + const INO = linux_raw_sys::general::STATX_INO; + + /// `STATX_SIZE` + const SIZE = linux_raw_sys::general::STATX_SIZE; + + /// `STATX_BLOCKS` + const BLOCKS = linux_raw_sys::general::STATX_BLOCKS; + + /// `STATX_BASIC_STATS` + const BASIC_STATS = linux_raw_sys::general::STATX_BASIC_STATS; + + /// `STATX_BTIME` + const BTIME = linux_raw_sys::general::STATX_BTIME; + + /// `STATX_MNT_ID` (since Linux 5.8) + const MNT_ID = linux_raw_sys::general::STATX_MNT_ID; + + /// `STATX_ALL` + const ALL = linux_raw_sys::general::STATX_ALL; + } +} + +bitflags! { + /// `FALLOC_FL_*` constants for use with [`fallocate`]. + /// + /// [`fallocate`]: crate::fs::fallocate + 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; + } +} + +bitflags! { + /// `ST_*` constants for use with [`StatVfs`]. + 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; + } +} + +/// `LOCK_*` constants for use with [`flock`] +/// +/// [`flock`]: crate::fs::flock +#[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, and mips64, 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(any(target_pointer_width = "32", target_arch = "mips64"))] +#[repr(C)] +#[derive(Debug, Copy, Clone)] +#[allow(missing_docs)] +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: u64, + pub st_atime_nsec: u32, + pub st_mtime: u64, + pub st_mtime_nsec: u32, + pub st_ctime: u64, + 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 +#[cfg(all(target_pointer_width = "64", not(target_arch = "mips64")))] +pub type Stat = linux_raw_sys::general::stat; + +/// `struct statfs` for use with [`statfs`] and [`fstatfs`]. +/// +/// [`statfs`]: crate::fs::statfs +/// [`fstatfs`]: crate::fs::fstatfs +#[allow(clippy::module_name_repetitions)] +pub type StatFs = linux_raw_sys::general::statfs64; + +/// `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, +} + +/// `struct statx` for use with [`statx`]. +/// +/// [`statx`]: crate::fs::statx +pub type Statx = linux_raw_sys::general::statx; + +/// `struct statx_timestamp` for use with [`Statx`]. +pub type StatxTimestamp = linux_raw_sys::general::statx_timestamp; + +/// `mode_t` +#[cfg(not(any( + target_arch = "x86", + target_arch = "sparc", + target_arch = "avr", + target_arch = "arm", +)))] +pub type RawMode = linux_raw_sys::general::__kernel_mode_t; + +/// `mode_t +#[cfg(any( + target_arch = "x86", + target_arch = "sparc", + target_arch = "avr", + target_arch = "arm", +))] +// Don't use `__kernel_mode_t` since it's `u16` which differs from `st_size`. +pub type RawMode = c::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(target_arch = "mips64"))] +pub type FsWord = linux_raw_sys::general::__fsword_t; + +/// `__fsword_t` +#[cfg(target_arch = "mips64")] +pub type FsWord = i64; + +pub use linux_raw_sys::general::{UTIME_NOW, UTIME_OMIT}; + +/// `PROC_SUPER_MAGIC`—The magic number for the procfs filesystem. +pub const PROC_SUPER_MAGIC: FsWord = linux_raw_sys::general::PROC_SUPER_MAGIC as FsWord; + +/// `NFS_SUPER_MAGIC`—The magic number for the NFS filesystem. +pub const NFS_SUPER_MAGIC: FsWord = linux_raw_sys::general::NFS_SUPER_MAGIC as FsWord; + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `MS_*` constants for use with [`mount`][crate::fs::mount]. + pub struct MountFlags: c::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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `MS_*` constants for use with [`change_mount`][crate::fs::mount::change_mount]. + pub struct MountPropagationFlags: c::c_uint { + /// `MS_SHARED` + const SHARED = linux_raw_sys::general::MS_SHARED; + /// `MS_PRIVATE` + const PRIVATE = linux_raw_sys::general::MS_PRIVATE; + /// `MS_SLAVE` + const SLAVE = 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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + pub(crate) struct InternalMountFlags: c::c_uint { + const REMOUNT = linux_raw_sys::general::MS_REMOUNT; + const MOVE = linux_raw_sys::general::MS_MOVE; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) struct MountFlagsArg(pub(crate) c::c_uint); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/epoll.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/epoll.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/epoll.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/epoll.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,404 @@ +//! epoll support. +//! +//! This is an experiment, and it isn't yet clear whether epoll is the right +//! level of abstraction at which to introduce safety. But it works fairly well +//! in simple examples 🙂. +//! +//! # Examples +//! +//! ```rust,no_run +//! # #![cfg_attr(io_lifetimes_use_std, feature(io_safety))] +//! # #[cfg(feature = "net")] +//! # fn main() -> std::io::Result<()> { +//! use io_lifetimes::AsFd; +//! use rustix::io::epoll::{self, Epoll}; +//! use rustix::io::{ioctl_fionbio, read, write}; +//! use rustix::net::{ +//! accept, bind_v4, listen, socket, AddressFamily, Ipv4Addr, Protocol, SocketAddrV4, +//! SocketType, +//! }; +//! use std::os::unix::io::AsRawFd; +//! +//! // Create a socket and listen on it. +//! let listen_sock = socket(AddressFamily::INET, SocketType::STREAM, Protocol::default())?; +//! bind_v4(&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::new(epoll::CreateFlags::CLOEXEC, epoll::Owning::new())?; +//! +//! // Remember the socket raw fd, which we use for comparisons only. +//! let raw_listen_sock = listen_sock.as_fd().as_raw_fd(); +//! +//! // Register the socket with the epoll object. +//! epoll.add(listen_sock, epoll::EventFlags::IN)?; +//! +//! // Process events. +//! let mut event_list = epoll::EventVec::with_capacity(4); +//! loop { +//! epoll.wait(&mut event_list, -1)?; +//! for (_event_flags, target) in &event_list { +//! if target.as_raw_fd() == raw_listen_sock { +//! // 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(&*target)?; +//! ioctl_fionbio(&conn_sock, true)?; +//! epoll.add(conn_sock, epoll::EventFlags::OUT | epoll::EventFlags::ET)?; +//! } else { +//! // Write a message to the stream and then unregister it. +//! write(&*target, b"hello\n")?; +//! let _ = epoll.del(target)?; +//! } +//! } +//! } +//! # } +//! # #[cfg(not(feature = "net"))] +//! # fn main() {} +//! ``` + +#![allow(unsafe_code)] + +use super::super::c; +use crate::backend::io::syscalls::{epoll_add, epoll_create, epoll_del, epoll_mod, epoll_wait}; +use crate::fd::{AsFd, AsRawFd, OwnedFd}; +#[cfg(feature = "std")] +use crate::fd::{BorrowedFd, FromRawFd, IntoRawFd, RawFd}; +use crate::io; +use alloc::vec::Vec; +use bitflags::bitflags; +use core::marker::PhantomData; +use core::ptr::null; + +#[doc(inline)] +pub use crate::io::context::*; + +bitflags! { + /// `EPOLL_*` for use with [`Epoll::new`]. + pub struct CreateFlags: c::c_uint { + /// `EPOLL_CLOEXEC` + const CLOEXEC = linux_raw_sys::general::EPOLL_CLOEXEC; + } +} + +bitflags! { + /// `EPOLL*` for use with [`Epoll::add`]. + #[derive(Default)] + 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; + + /// `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; + } +} + +/// An "epoll", an interface to an OS object allowing one to repeatedly wait +/// for events from a set of file descriptors efficiently. +pub struct Epoll { + epoll_fd: OwnedFd, + context: Context, +} + +impl Epoll { + /// `epoll_create1(flags)`—Creates a new `Epoll`. + /// + /// Use the [`CreateFlags::CLOEXEC`] flag to prevent the resulting file + /// descriptor from being implicitly passed across `exec` boundaries. + #[inline] + #[doc(alias = "epoll_create1")] + pub fn new(flags: CreateFlags, context: Context) -> io::Result { + // Safety: We're calling `epoll_create1` via FFI and we know how it + // behaves. + Ok(Self { + epoll_fd: epoll_create(flags)?, + context, + }) + } + + /// `epoll_ctl(self, EPOLL_CTL_ADD, data, event)`—Adds an element to an + /// `Epoll`. + /// + /// This registers interest in any of the events set in `events` occurring + /// on the file descriptor associated with `data`. + #[doc(alias = "epoll_ctl")] + pub fn add( + &self, + data: Context::Data, + event_flags: EventFlags, + ) -> io::Result> { + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + let target = self.context.acquire(data); + let raw_fd = target.as_fd().as_raw_fd(); + let encoded = self.context.encode(target); + epoll_add( + self.epoll_fd.as_fd(), + raw_fd, + &linux_raw_sys::general::epoll_event { + events: event_flags.bits(), + data: encoded, + }, + )?; + Ok(self.context.decode(encoded)) + } + } + + /// `epoll_ctl(self, EPOLL_CTL_MOD, target, event)`—Modifies an element in + /// this `Epoll`. + /// + /// This sets the events of interest with `target` to `events`. + #[doc(alias = "epoll_ctl")] + pub fn mod_( + &self, + target: Ref<'_, Context::Target>, + event_flags: EventFlags, + ) -> io::Result<()> { + let raw_fd = target.as_fd().as_raw_fd(); + let encoded = self.context.encode(target); + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + epoll_mod( + self.epoll_fd.as_fd(), + raw_fd, + &linux_raw_sys::general::epoll_event { + events: event_flags.bits(), + data: encoded, + }, + ) + } + } + + /// `epoll_ctl(self, EPOLL_CTL_DEL, target, NULL)`—Removes an element in + /// this `Epoll`. + /// + /// This also returns the owning `Data`. + #[doc(alias = "epoll_ctl")] + pub fn del(&self, target: Ref<'_, Context::Target>) -> io::Result { + // Safety: We're calling `epoll_ctl` via FFI and we know how it + // behaves. + unsafe { + let raw_fd = target.as_fd().as_raw_fd(); + epoll_del(self.epoll_fd.as_fd(), raw_fd)?; + } + Ok(self.context.release(target)) + } + + /// `epoll_wait(self, events, timeout)`—Waits for registered events of + /// interest. + /// + /// For each event of interest, an element is written to `events`. On + /// success, this returns the number of written elements. + #[doc(alias = "epoll_wait")] + pub fn wait<'context>( + &'context self, + event_list: &mut EventVec<'context, Context>, + timeout: c::c_int, + ) -> io::Result<()> { + // Safety: We're calling `epoll_wait` via FFI and we know how it + // behaves. + unsafe { + event_list.events.set_len(0); + let nfds = epoll_wait( + self.epoll_fd.as_fd(), + event_list.events[..].as_mut_ptr().cast(), + event_list.events.capacity(), + timeout, + )?; + event_list.events.set_len(nfds); + event_list.context = &self.context; + } + + Ok(()) + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> AsRawFd for Epoll> { + fn as_raw_fd(&self) -> RawFd { + self.epoll_fd.as_raw_fd() + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> IntoRawFd for Epoll> { + fn into_raw_fd(self) -> RawFd { + self.epoll_fd.into_raw_fd() + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> FromRawFd for Epoll> { + unsafe fn from_raw_fd(fd: RawFd) -> Self { + Self { + epoll_fd: OwnedFd::from_raw_fd(fd), + context: Owning::new(), + } + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> AsFd for Epoll> { + fn as_fd(&self) -> BorrowedFd<'_> { + self.epoll_fd.as_fd() + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> From>> + for OwnedFd +{ + fn from(epoll: Epoll>) -> Self { + epoll.epoll_fd + } +} + +#[cfg(feature = "std")] +impl<'context, T: AsFd + Into + From> From + for Epoll> +{ + fn from(fd: OwnedFd) -> Self { + Self { + epoll_fd: fd, + context: Owning::new(), + } + } +} + +/// An iterator over the `Event`s in an `EventVec`. +pub struct Iter<'context, Context: self::Context> { + iter: core::slice::Iter<'context, Event>, + context: *const Context, + _phantom: PhantomData<&'context Context>, +} + +impl<'context, Context: self::Context> Iterator for Iter<'context, Context> { + type Item = (EventFlags, Ref<'context, Context::Target>); + + fn next(&mut self) -> Option { + self.iter.next().map(|event| { + // Safety: `self.context` is guaranteed to be valid because we hold + // `'context` for it. And we know this event is associated with this + // context because `wait` sets both. + let decoded = unsafe { (*self.context).decode(event.encoded) }; + + (event.event_flags, decoded) + }) + } +} + +/// A record of an event that occurred. +#[repr(C)] +#[cfg_attr(target_arch = "x86_64", repr(packed))] +struct Event { + // Match the layout of `linux_raw_sys::general::epoll_event`. We just use a + // `u64` instead of the full union; `Context` implementations will simply + // need to deal with casting the value into and out of the `u64` + // themselves. + event_flags: EventFlags, + encoded: u64, +} + +/// A vector of `Event`s, plus context for interpreting them. +pub struct EventVec<'context, Context: self::Context> { + events: Vec, + context: *const Context, + _phantom: PhantomData<&'context Context>, +} + +impl<'context, Context: self::Context> EventVec<'context, Context> { + /// Constructs an `EventVec` with memory for `capacity` `Event`s. + #[inline] + pub fn with_capacity(capacity: usize) -> Self { + Self { + events: Vec::with_capacity(capacity), + context: null(), + _phantom: PhantomData, + } + } + + /// Returns the current `Event` capacity of this `EventVec`. + #[inline] + pub fn capacity(&self) -> usize { + self.events.capacity() + } + + /// Reserves enough memory for at least `additional` more `Event`s. + #[inline] + pub fn reserve(&mut self, additional: usize) { + self.events.reserve(additional); + } + + /// Reserves enough memory for exactly `additional` more `Event`s. + #[inline] + pub fn reserve_exact(&mut self, additional: usize) { + self.events.reserve_exact(additional); + } + + /// Clears all the `Events` out of this `EventVec`. + #[inline] + pub fn clear(&mut self) { + self.events.clear(); + } + + /// Shrinks the capacity of this `EventVec` as much as possible. + #[inline] + pub fn shrink_to_fit(&mut self) { + self.events.shrink_to_fit(); + } + + /// Returns an iterator over the `Event`s in this `EventVec`. + #[inline] + pub fn iter(&self) -> Iter<'_, Context> { + Iter { + iter: self.events.iter(), + context: self.context, + _phantom: PhantomData, + } + } + + /// Returns the number of `Event`s logically contained in this `EventVec`. + #[inline] + pub fn len(&mut self) -> usize { + self.events.len() + } + + /// Tests whether this `EventVec` is logically empty. + #[inline] + pub fn is_empty(&mut self) -> bool { + self.events.is_empty() + } +} + +impl<'context, Context: self::Context> IntoIterator for &'context EventVec<'context, Context> { + type IntoIter = Iter<'context, Context>; + type Item = (EventFlags, Ref<'context, Context::Target>); + + #[inline] + fn into_iter(self) -> Self::IntoIter { + self.iter() + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,517 @@ +//! 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 super::super::c; +use crate::backend::fd::RawFd; +use crate::backend::reg::{RetNumber, RetReg}; +use crate::io; +use linux_raw_sys::errno; + +/// 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. +#[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 { + 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`. + 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( + raw: RetReg, +) -> io::Result { + 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( + raw: RetReg, +) -> io::Result { + 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(raw: RetReg) -> io::Result { + 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( + raw: RetReg, +) -> 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(raw: RetReg) -> io::Result { + 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( + raw: RetReg, +) -> io::Result { + // 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( + raw: RetReg, +) -> 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(feature = "runtime")] +#[inline] +pub(in crate::backend) unsafe fn try_decode_error(raw: RetReg) -> 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(raw: RetReg) -> usize { + raw.decode_usize() +} + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/io_slice.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/io_slice.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/io_slice.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/io_slice.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,98 @@ +//! The following is derived from Rust's +//! library/std/src/sys/unix/io.rs +//! dca3f1b786efd27be3b325ed1e01e247aa589c3b. + +#![allow(unsafe_code)] +use super::super::c; +use core::marker::PhantomData; +use core::slice; +use linux_raw_sys::general::__kernel_size_t; + +/// +#[derive(Copy, Clone)] +#[repr(transparent)] +pub struct IoSlice<'a> { + vec: c::iovec, + _p: PhantomData<&'a [u8]>, +} + +impl<'a> IoSlice<'a> { + /// + #[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, + } + } + + /// + #[inline] + pub fn advance(&mut self, n: usize) { + if self.vec.iov_len < n as _ { + panic!("advancing IoSlice beyond its length"); + } + + unsafe { + self.vec.iov_len -= n as __kernel_size_t; + self.vec.iov_base = self.vec.iov_base.add(n); + } + } + + /// + #[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) } + } +} + +/// +#[repr(transparent)] +pub struct IoSliceMut<'a> { + vec: c::iovec, + _p: PhantomData<&'a mut [u8]>, +} + +impl<'a> IoSliceMut<'a> { + /// + #[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, + } + } + + /// + #[inline] + pub fn advance(&mut self, n: usize) { + if self.vec.iov_len < n as _ { + panic!("advancing IoSliceMut beyond its length"); + } + + unsafe { + self.vec.iov_len -= n as __kernel_size_t; + self.vec.iov_base = self.vec.iov_base.add(n); + } + } + + /// + #[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) } + } + + /// + #[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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,7 @@ +pub mod epoll; +pub(crate) mod errno; +#[cfg(not(feature = "std"))] +pub(crate) mod io_slice; +pub(crate) mod poll_fd; +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/poll_fd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/poll_fd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/poll_fd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/poll_fd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,93 @@ +use crate::fd::{AsFd, BorrowedFd}; +use bitflags::bitflags; + +bitflags! { + /// `POLL*` flags for use with [`poll`]. + /// + /// [`poll`]: crate::io::poll + 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; + } +} + +/// `struct pollfd`—File descriptor and flags for use with [`poll`]. +/// +/// [`poll`]: crate::io::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: &'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(&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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,676 @@ +//! 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::super::c; +#[cfg(target_pointer_width = "64")] +use super::super::conv::loff_t_from_u64; +use super::super::conv::{ + by_ref, c_int, c_uint, opt_mut, pass_usize, raw_fd, ret, ret_c_uint, ret_discarded_fd, + ret_owned_fd, ret_usize, slice, slice_mut, zero, +}; +#[cfg(target_pointer_width = "32")] +use super::super::conv::{hi, lo}; +use crate::fd::{AsFd, BorrowedFd, OwnedFd, RawFd}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::io::SpliceFlags; +use crate::io::{ + self, epoll, DupFlags, EventfdFlags, FdFlags, IoSlice, IoSliceMut, IoSliceRaw, PipeFlags, + PollFd, ReadWriteFlags, +}; +#[cfg(all(feature = "fs", feature = "net"))] +use crate::net::{RecvFlags, SendFlags}; +use core::cmp; +use core::mem::MaybeUninit; +#[cfg(target_os = "espidf")] +use linux_raw_sys::general::F_DUPFD; +use linux_raw_sys::general::{ + epoll_event, EPOLL_CTL_ADD, EPOLL_CTL_DEL, EPOLL_CTL_MOD, F_DUPFD_CLOEXEC, F_GETFD, F_SETFD, + UIO_MAXIOV, +}; +use linux_raw_sys::ioctl::{BLKPBSZGET, BLKSSZGET, FIONBIO, FIONREAD, TIOCEXCL, TIOCNXCL}; +#[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] +use { + super::super::conv::{opt_ref, size_of}, + linux_raw_sys::general::{__kernel_timespec, sigset_t}, +}; + +#[inline] +pub(crate) fn read(fd: BorrowedFd<'_>, buf: &mut [u8]) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + + unsafe { ret_usize(syscall!(__NR_read, fd, buf_addr_mut, buf_len)) } +} + +#[inline] +pub(crate) fn pread(fd: BorrowedFd<'_>, buf: &mut [u8], pos: u64) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + + // + #[cfg(all( + target_pointer_width = "32", + any(target_arch = "arm", target_arch = "mips", target_arch = "power"), + ))] + unsafe { + ret_usize(syscall!( + __NR_pread64, + fd, + buf_addr_mut, + buf_len, + zero(), + hi(pos), + lo(pos) + )) + } + #[cfg(all( + target_pointer_width = "32", + not(any(target_arch = "arm", target_arch = "mips", target_arch = "power")), + ))] + unsafe { + ret_usize(syscall!( + __NR_pread64, + fd, + buf_addr_mut, + buf_len, + hi(pos), + lo(pos) + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_usize(syscall!( + __NR_pread64, + fd, + buf_addr_mut, + buf_len, + loff_t_from_u64(pos) + )) + } +} + +#[inline] +pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut<'_>]) -> io::Result { + 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 { + let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), max_iov())]); + + #[cfg(target_pointer_width = "32")] + unsafe { + ret_usize(syscall!( + __NR_preadv, + fd, + bufs_addr, + bufs_len, + hi(pos), + lo(pos) + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_usize(syscall!( + __NR_preadv, + fd, + bufs_addr, + bufs_len, + loff_t_from_u64(pos) + )) + } +} + +#[inline] +pub(crate) fn preadv2( + fd: BorrowedFd<'_>, + bufs: &mut [IoSliceMut<'_>], + pos: u64, + flags: ReadWriteFlags, +) -> io::Result { + let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), max_iov())]); + + #[cfg(target_pointer_width = "32")] + unsafe { + ret_usize(syscall!( + __NR_preadv2, + fd, + bufs_addr, + bufs_len, + hi(pos), + lo(pos), + flags + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_usize(syscall!( + __NR_preadv2, + fd, + bufs_addr, + bufs_len, + loff_t_from_u64(pos), + flags + )) + } +} + +#[inline] +pub(crate) fn write(fd: BorrowedFd<'_>, buf: &[u8]) -> io::Result { + 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 { + let (buf_addr, buf_len) = slice(buf); + + // + #[cfg(all( + target_pointer_width = "32", + any(target_arch = "arm", target_arch = "mips", target_arch = "power"), + ))] + 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 = "power")), + ))] + 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 { + 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 { + let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), max_iov())]); + + #[cfg(target_pointer_width = "32")] + unsafe { + ret_usize(syscall_readonly!( + __NR_pwritev, + fd, + bufs_addr, + bufs_len, + hi(pos), + lo(pos) + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_usize(syscall_readonly!( + __NR_pwritev, + fd, + bufs_addr, + bufs_len, + loff_t_from_u64(pos) + )) + } +} + +#[inline] +pub(crate) fn pwritev2( + fd: BorrowedFd<'_>, + bufs: &[IoSlice<'_>], + pos: u64, + flags: ReadWriteFlags, +) -> io::Result { + let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), max_iov())]); + + #[cfg(target_pointer_width = "32")] + unsafe { + ret_usize(syscall_readonly!( + __NR_pwritev2, + fd, + bufs_addr, + bufs_len, + hi(pos), + lo(pos), + flags + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_usize(syscall_readonly!( + __NR_pwritev2, + fd, + bufs_addr, + bufs_len, + loff_t_from_u64(pos), + flags + )) + } +} + +/// The maximum number of buffers that can be passed into a vectored I/O system +/// call on the current platform. +const fn max_iov() -> usize { + UIO_MAXIOV as usize +} + +#[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(); +} + +#[inline] +pub(crate) fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result { + unsafe { ret_owned_fd(syscall_readonly!(__NR_eventfd2, c_uint(initval), flags)) } +} + +#[inline] +pub(crate) fn ioctl_fionread(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_ioctl, fd, c_uint(FIONREAD), &mut result))?; + Ok(result.assume_init() as u64) + } +} + +#[inline] +pub(crate) fn ioctl_fionbio(fd: BorrowedFd<'_>, value: bool) -> io::Result<()> { + unsafe { + let data = c::c_int::from(value); + ret(syscall_readonly!( + __NR_ioctl, + fd, + c_uint(FIONBIO), + by_ref(&data) + )) + } +} + +#[inline] +pub(crate) fn ioctl_tiocexcl(fd: BorrowedFd<'_>) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_ioctl, fd, c_uint(TIOCEXCL))) } +} + +#[inline] +pub(crate) fn ioctl_tiocnxcl(fd: BorrowedFd<'_>) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_ioctl, fd, c_uint(TIOCNXCL))) } +} + +#[inline] +pub(crate) fn ioctl_blksszget(fd: BorrowedFd) -> io::Result { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(syscall!(__NR_ioctl, fd, c_uint(BLKSSZGET), &mut result))?; + Ok(result.assume_init() as u32) + } +} + +#[inline] +pub(crate) fn ioctl_blkpbszget(fd: BorrowedFd) -> io::Result { + let mut result = MaybeUninit::::uninit(); + unsafe { + ret(syscall!(__NR_ioctl, fd, c_uint(BLKPBSZGET), &mut result))?; + Ok(result.assume_init() as u32) + } +} + +#[cfg(all(feature = "fs", feature = "net"))] +pub(crate) fn is_read_write(fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { + let (mut read, mut write) = crate::fs::fd::_is_file_read_write(fd)?; + let mut not_socket = false; + if read { + // Do a `recv` with `PEEK` and `DONTWAIT` for 1 byte. A 0 indicates + // the read side is shut down; an `EWOULDBLOCK` indicates the read + // side is still open. + // + // TODO: This code would benefit from having a better way to read into + // uninitialized memory. + let mut buf = [0]; + match super::super::net::syscalls::recv(fd, &mut buf, RecvFlags::PEEK | RecvFlags::DONTWAIT) + { + Ok(0) => read = false, + Err(err) => { + #[allow(unreachable_patterns)] // `EAGAIN` may equal `EWOULDBLOCK` + match err { + io::Errno::AGAIN | io::Errno::WOULDBLOCK => (), + io::Errno::NOTSOCK => not_socket = true, + _ => return Err(err), + } + } + Ok(_) => (), + } + } + if write && !not_socket { + // Do a `send` with `DONTWAIT` for 0 bytes. An `EPIPE` indicates + // the write side is shut down. + #[allow(unreachable_patterns)] // `EAGAIN` equals `EWOULDBLOCK` + match super::super::net::syscalls::send(fd, &[], SendFlags::DONTWAIT) { + // TODO or-patterns when we don't need 1.51 + Err(io::Errno::AGAIN) => (), + Err(io::Errno::WOULDBLOCK) => (), + Err(io::Errno::NOTSOCK) => (), + Err(io::Errno::PIPE) => write = false, + Err(err) => return Err(err), + Ok(_) => (), + } + } + Ok((read, write)) +} + +#[inline] +pub(crate) fn dup(fd: BorrowedFd<'_>) -> io::Result { + unsafe { ret_owned_fd(syscall_readonly!(__NR_dup, fd)) } +} + +#[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())) + } +} + +#[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 { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_c_uint(syscall_readonly!(__NR_fcntl64, fd, c_uint(F_GETFD))) + .map(FdFlags::from_bits_truncate) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_c_uint(syscall_readonly!(__NR_fcntl, fd, c_uint(F_GETFD))) + .map(FdFlags::from_bits_truncate) + } +} + +#[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)) + } +} + +#[cfg(target_os = "espidf")] +#[inline] +pub(crate) fn fcntl_dupfd(fd: BorrowedFd<'_>, min: RawFd) -> io::Result { + #[cfg(target_pointer_width = "32")] + unsafe { + ret_owned_fd(syscall_readonly!( + __NR_fcntl64, + fd, + c_uint(F_DUPFD), + raw_fd(min) + )) + } + #[cfg(target_pointer_width = "64")] + unsafe { + ret_owned_fd(syscall_readonly!( + __NR_fcntl, + fd, + c_uint(F_DUPFD), + raw_fd(min) + )) + } +} + +#[inline] +pub(crate) fn fcntl_dupfd_cloexec(fd: BorrowedFd<'_>, min: RawFd) -> io::Result { + #[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) + )) + } +} + +#[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 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 = "mips64", + target_arch = "riscv64", + ))] + { + pipe_with(PipeFlags::empty()) + } + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "mips", + target_arch = "mips64", + 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 poll(fds: &mut [PollFd<'_>], timeout: c::c_int) -> io::Result { + let (fds_addr_mut, fds_len) = slice_mut(fds); + + #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] + unsafe { + let timeout = if timeout >= 0 { + Some(__kernel_timespec { + tv_sec: (timeout as i64) / 1000, + tv_nsec: (timeout as i64) % 1000 * 1_000_000, + }) + } else { + None + }; + ret_usize(syscall!( + __NR_ppoll, + fds_addr_mut, + fds_len, + opt_ref(timeout.as_ref()), + zero(), + size_of::() + )) + } + #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))] + unsafe { + ret_usize(syscall!(__NR_poll, fds_addr_mut, fds_len, c_int(timeout))) + } +} + +#[inline] +pub(crate) fn epoll_create(flags: epoll::CreateFlags) -> io::Result { + unsafe { ret_owned_fd(syscall_readonly!(__NR_epoll_create1, flags)) } +} + +#[inline] +pub(crate) unsafe fn epoll_add( + epfd: BorrowedFd<'_>, + fd: c::c_int, + event: &epoll_event, +) -> io::Result<()> { + ret(syscall_readonly!( + __NR_epoll_ctl, + epfd, + c_uint(EPOLL_CTL_ADD), + raw_fd(fd), + by_ref(event) + )) +} + +#[inline] +pub(crate) unsafe fn epoll_mod( + epfd: BorrowedFd<'_>, + fd: c::c_int, + event: &epoll_event, +) -> io::Result<()> { + ret(syscall_readonly!( + __NR_epoll_ctl, + epfd, + c_uint(EPOLL_CTL_MOD), + raw_fd(fd), + by_ref(event) + )) +} + +#[inline] +pub(crate) unsafe fn epoll_del(epfd: BorrowedFd<'_>, fd: c::c_int) -> io::Result<()> { + ret(syscall_readonly!( + __NR_epoll_ctl, + epfd, + c_uint(EPOLL_CTL_DEL), + raw_fd(fd), + zero() + )) +} + +#[inline] +pub(crate) fn epoll_wait( + epfd: BorrowedFd<'_>, + events: *mut epoll_event, + num_events: usize, + timeout: c::c_int, +) -> io::Result { + #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))] + unsafe { + ret_usize(syscall!( + __NR_epoll_wait, + epfd, + events, + pass_usize(num_events), + c_int(timeout) + )) + } + #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] + unsafe { + ret_usize(syscall!( + __NR_epoll_pwait, + epfd, + events, + pass_usize(num_events), + c_int(timeout), + zero() + )) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn splice( + fd_in: BorrowedFd, + off_in: Option<&mut u64>, + fd_out: BorrowedFd, + off_out: Option<&mut u64>, + len: usize, + flags: SpliceFlags, +) -> io::Result { + unsafe { + ret_usize(syscall!( + __NR_splice, + fd_in, + opt_mut(off_in), + fd_out, + opt_mut(off_out), + pass_usize(len), + c_uint(flags.bits()) + )) + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub unsafe fn vmsplice( + fd: BorrowedFd, + bufs: &[IoSliceRaw], + flags: SpliceFlags, +) -> io::Result { + let (bufs_addr, bufs_len) = slice(&bufs[..cmp::min(bufs.len(), max_iov())]); + ret_usize(syscall!( + __NR_vmsplice, + fd, + bufs_addr, + bufs_len, + c_uint(flags.bits()) + )) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,128 @@ +use super::super::c; +use bitflags::bitflags; +use core::marker::PhantomData; + +bitflags! { + /// `FD_*` constants for use with [`fcntl_getfd`] and [`fcntl_setfd`]. + /// + /// [`fcntl_getfd`]: crate::io::fcntl_getfd + /// [`fcntl_setfd`]: crate::io::fcntl_setfd + pub struct FdFlags: c::c_uint { + /// `FD_CLOEXEC` + const CLOEXEC = linux_raw_sys::general::FD_CLOEXEC; + } +} + +bitflags! { + /// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`]. + /// + /// [`preadv2`]: crate::io::preadv2 + /// [`pwritev2`]: crate::io::pwritev + pub struct ReadWriteFlags: c::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; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags! { + /// `SPLICE_F_*` constants for use with [`splice`] and [`vmsplice`]. + pub struct SpliceFlags: c::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; + } +} + +bitflags! { + /// `O_*` constants for use with [`dup2`]. + /// + /// [`dup2`]: crate::io::dup2 + pub struct DupFlags: c::c_uint { + /// `O_CLOEXEC` + const CLOEXEC = linux_raw_sys::general::O_CLOEXEC; + } +} + +bitflags! { + /// `O_*` constants for use with [`pipe_with`]. + /// + /// [`pipe_with`]: crate::io::pipe_with + pub struct PipeFlags: c::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; + } +} + +bitflags! { + /// `EFD_*` flags for use with [`eventfd`]. + /// + /// [`eventfd`]: crate::io::eventfd + pub struct EventfdFlags: c::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; + } +} + +/// `PIPE_BUF`—The maximum size of a write to a pipe guaranteed to be atomic. +pub const PIPE_BUF: usize = linux_raw_sys::general::PIPE_BUF as usize; + +pub(crate) const AT_FDCWD: c::c_int = linux_raw_sys::general::AT_FDCWD; +pub(crate) const STDIN_FILENO: c::c_uint = linux_raw_sys::general::STDIN_FILENO; +pub(crate) const STDOUT_FILENO: c::c_uint = linux_raw_sys::general::STDOUT_FILENO; +pub(crate) const STDERR_FILENO: c::c_uint = linux_raw_sys::general::STDERR_FILENO; + +/// A buffer type used 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. +#[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 as *mut 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() as *mut c::c_void, + iov_len: buf.len() as _, + }, + _lifetime: PhantomData, + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +pub(crate) mod syscalls; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/io_uring/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,63 @@ +//! linux_raw syscalls supporting `rustix::io_uring`. +//! +//! # Safety +//! +//! See the `rustix::backend::syscalls` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::conv::{by_mut, c_uint, pass_usize, ret, ret_c_uint, ret_owned_fd}; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::io; +use crate::io_uring::{io_uring_params, IoringEnterFlags, IoringRegisterOp}; +use core::ffi::c_void; + +#[inline] +pub(crate) fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result { + 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<()> { + ret(syscall_readonly!( + __NR_io_uring_register, + fd, + c_uint(opcode as u32), + 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 { + // 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,214 @@ +//! 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::super::c; +#[cfg(target_pointer_width = "64")] +use super::super::conv::loff_t_from_u64; +use super::super::conv::{c_uint, no_fd, pass_usize, ret, ret_owned_fd, ret_void_star}; +use super::types::{ + Advice, MapFlags, MlockFlags, MprotectFlags, MremapFlags, MsyncFlags, ProtFlags, + UserfaultfdFlags, +}; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::io; +#[cfg(target_pointer_width = "32")] +use core::convert::TryInto; +use linux_raw_sys::general::MAP_ANONYMOUS; + +#[inline] +pub(crate) fn madvise(addr: *mut c::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::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::c_void, + length: usize, + prot: ProtFlags, + flags: MapFlags, + fd: BorrowedFd<'_>, + offset: u64, +) -> io::Result<*mut c::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::c_void, + length: usize, + prot: ProtFlags, + flags: MapFlags, +) -> io::Result<*mut c::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::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::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::c_void, + old_size: usize, + new_size: usize, + flags: MremapFlags, +) -> io::Result<*mut c::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::c_void, + old_size: usize, + new_size: usize, + flags: MremapFlags, + new_address: *mut c::c_void, +) -> io::Result<*mut c::c_void> { + ret_void_star(syscall!( + __NR_mremap, + old_address, + pass_usize(old_size), + pass_usize(new_size), + flags, + 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::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::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::c_void, length: usize) -> io::Result<()> { + ret(syscall!(__NR_munlock, addr, pass_usize(length))) +} + +#[inline] +pub(crate) unsafe fn userfaultfd(flags: UserfaultfdFlags) -> io::Result { + ret_owned_fd(syscall_readonly!(__NR_userfaultfd, flags)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mm/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,208 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `PROT_*` flags for use with [`mmap`]. + /// + /// For `PROT_NONE`, use `ProtFlags::empty()`. + /// + /// [`mmap`]: crate::io::mmap + 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; + } +} + +bitflags! { + /// `PROT_*` flags for use with [`mprotect`]. + /// + /// For `PROT_NONE`, use `MprotectFlags::empty()`. + /// + /// [`mprotect`]: crate::io::mprotect + 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; + } +} + +bitflags! { + /// `MAP_*` flags for use with [`mmap`]. + /// + /// For `MAP_ANONYMOUS` (aka `MAP_ANON`), see [`mmap_anonymous`]. + /// + /// [`mmap`]: crate::io::mmap + /// [`mmap_anonymous`]: crates::io::mmap_anonymous + 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 = "mips64")))] + const SYNC = linux_raw_sys::general::MAP_SYNC; + /// `MAP_UNINITIALIZED` + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + const UNINITIALIZED = linux_raw_sys::general::MAP_UNINITIALIZED; + } +} + +bitflags! { + /// `MREMAP_*` flags for use with [`mremap`]. + /// + /// For `MREMAP_FIXED`, see [`mremap_fixed`]. + /// + /// [`mremap`]: crate::io::mremap + /// [`mremap_fixed`]: crate::io::mremap_fixed + 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; + } +} + +bitflags! { + /// `MLOCK_*` flags for use with [`mlock_with`]. + /// + /// [`mlock_with`]: crate::io::mlock_with + pub struct MlockFlags: u32 { + /// `MLOCK_ONFAULT` + const ONFAULT = linux_raw_sys::general::MLOCK_ONFAULT; + } +} + +bitflags! { + /// `MS_*` flags for use with [`msync`]. + /// + /// [`msync`]: crate::io::msync + 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; + } +} + +bitflags! { + /// `O_*` flags for use with [`userfaultfd`]. + /// + /// [`userfaultfd`]: crate::io::userfaultfd + pub struct UserfaultfdFlags: c::c_uint { + /// `O_CLOEXEC` + const CLOEXEC = linux_raw_sys::general::O_CLOEXEC; + /// `O_NONBLOCK` + const NONBLOCK = linux_raw_sys::general::O_NONBLOCK; + } +} + +/// `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 = "mips64")))] + 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` (since Linux 2.6.38) + LinuxHugepage = linux_raw_sys::general::MADV_HUGEPAGE, + /// `MADV_NOHUGEPAGE` (since Linux 2.6.38) + 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, +} + +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. + #[allow(non_upper_case_globals)] + pub const DontNeed: Self = Self::Normal; +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,67 @@ +//! 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 file 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 +//! , 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 elf; +mod reg; +#[cfg(any(feature = "time", target_arch = "x86"))] +mod vdso; +#[cfg(any(feature = "time", target_arch = "x86"))] +mod vdso_wrappers; + +#[cfg(feature = "fs")] +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 = "net")] +pub(crate) mod net; +#[cfg(any( + feature = "param", + feature = "runtime", + feature = "time", + target_arch = "x86", +))] +pub(crate) mod param; +pub(crate) mod process; +#[cfg(feature = "rand")] +pub(crate) mod rand; +#[cfg(feature = "runtime")] +pub(crate) mod runtime; +#[cfg(feature = "termios")] +pub(crate) mod termios; +#[cfg(feature = "thread")] +pub(crate) mod thread; +pub(crate) mod time; + +#[cfg(feature = "std")] +pub(crate) mod fd { + pub use io_lifetimes::*; + #[allow(unused_imports)] + pub(crate) use std::os::unix::io::RawFd as LibcFd; + pub use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +} + +#[cfg(not(feature = "std"))] +pub(crate) use crate::io::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; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/addr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/addr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/addr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/addr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,172 @@ +//! IPv4, IPv6, and Socket addresses. +//! +//! # Safety +//! +//! Linux's IPv6 type contains a union. +#![allow(unsafe_code)] + +use super::super::c; +use crate::ffi::CStr; +use crate::{io, path}; +use core::convert::TryInto; +use core::{fmt, slice}; + +/// `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(path: P) -> io::Result { + path.into_with_c_str(Self::_new) + } + + #[inline] + fn _new(path: &CStr) -> io::Result { + let mut unix = Self::init(); + let bytes = path.to_bytes_with_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; + } + 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 { + let mut unix = Self::init(); + if 1 + name.len() > unix.sun_path.len() { + return Err(io::Errno::NAMETOOLONG); + } + unix.sun_path[0] = b'\0' as c::c_char; + 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, len }) + } + + 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] + pub fn path(&self) -> Option<&CStr> { + let len = self.len(); + if len != 0 && self.unix.sun_path[0] != b'\0' as c::c_char { + let end = len as usize - offsetof_sun_path(); + let bytes = &self.unix.sun_path[..end]; + // Safety: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`. And + // `from_bytes_with_nul_unchecked` since the string is NUL-terminated. + unsafe { + Some(CStr::from_bytes_with_nul_unchecked(slice::from_raw_parts( + bytes.as_ptr().cast(), + bytes.len(), + ))) + } + } else { + None + } + } + + /// For an abstract address, return the identifier. + #[inline] + pub fn abstract_name(&self) -> Option<&[u8]> { + let len = self.len(); + if len != 0 && self.unix.sun_path[0] == b'\0' as c::c_char { + let end = len as usize - offsetof_sun_path(); + let bytes = &self.unix.sun_path[1..end]; + // Safety: `from_raw_parts` to convert from `&[c_char]` to `&[u8]`. + unsafe { Some(slice::from_raw_parts(bytes.as_ptr().cast(), bytes.len())) } + } else { + None + } + } + + #[inline] + pub(crate) fn addr_len(&self) -> c::socklen_t { + self.len + } + + #[inline] + pub(crate) fn len(&self) -> usize { + self.addr_len() as usize + } +} + +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 { + let self_len = self.len() - offsetof_sun_path(); + let other_len = other.len() - offsetof_sun_path(); + self.unix.sun_path[..self_len].partial_cmp(&other.unix.sun_path[..other_len]) + } +} + +impl Ord for SocketAddrUnix { + #[inline] + fn cmp(&self, other: &Self) -> core::cmp::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 core::hash::Hash for SocketAddrUnix { + #[inline] + fn hash(&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, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + if let Some(path) = self.path() { + path.fmt(fmt) + } else if let Some(name) = self.abstract_name() { + name.fmt(fmt) + } else { + "(unnamed)".fmt(fmt) + } + } +} + +/// `struct sockaddr_storage` as a raw struct. +pub type SocketAddrStorage = 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,6 @@ +pub(crate) mod addr; +pub(crate) mod read_sockaddr; +pub(crate) mod send_recv; +pub(crate) mod syscalls; +pub(crate) mod types; +pub(crate) mod write_sockaddr; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/read_sockaddr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/read_sockaddr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/read_sockaddr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/read_sockaddr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,175 @@ +//! The BSD sockets API requires us to read the `ss_family` field before +//! we can interpret the rest of a `sockaddr` produced by the kernel. +#![allow(unsafe_code)] + +use super::super::c; +use crate::io; +use crate::net::{Ipv4Addr, Ipv6Addr, SocketAddrAny, SocketAddrUnix, SocketAddrV4, SocketAddrV6}; +use alloc::vec::Vec; +use core::mem::size_of; + +// This must match the header of `sockaddr`. +#[repr(C)] +struct sockaddr_header { + ss_family: u16, +} + +/// Read the `ss_family` field from a socket address returned from the OS. +/// +/// # Safety +/// +/// `storage` must point to a valid socket address returned from the OS. +#[inline] +unsafe fn read_ss_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::general::__kernel_sockaddr_storage__bindgen_ty_1 { + __bindgen_anon_1: + linux_raw_sys::general::__kernel_sockaddr_storage__bindgen_ty_1__bindgen_ty_1 { + ss_family: 0_u16, + __data: [0; 126_usize], + }, + }, + }, + }; + + (*storage.cast::()).ss_family +} + +/// Set the `ss_family` field of a socket address to `AF_UNSPEC`, so that we +/// can test for `AF_UNSPEC` to test whether it was stored to. +#[inline] +pub(crate) unsafe fn initialize_family_to_unspec(storage: *mut c::sockaddr) { + (*storage.cast::()).ss_family = c::AF_UNSPEC as _; +} + +/// Read a socket address encoded in a platform-specific format. +/// +/// # Safety +/// +/// `storage` must point to valid socket address storage. +pub(crate) unsafe fn read_sockaddr( + storage: *const c::sockaddr, + len: usize, +) -> io::Result { + let offsetof_sun_path = super::addr::offsetof_sun_path(); + + if len < size_of::() { + return Err(io::Errno::INVAL); + } + match read_ss_family(storage).into() { + c::AF_INET => { + if len < size_of::() { + return Err(io::Errno::INVAL); + } + let decode = *storage.cast::(); + Ok(SocketAddrAny::V4(SocketAddrV4::new( + Ipv4Addr::from(u32::from_be(decode.sin_addr.s_addr)), + u16::from_be(decode.sin_port), + ))) + } + c::AF_INET6 => { + if len < size_of::() { + return Err(io::Errno::INVAL); + } + let decode = *storage.cast::(); + Ok(SocketAddrAny::V6(SocketAddrV6::new( + Ipv6Addr::from(decode.sin6_addr.in6_u.u6_addr8), + u16::from_be(decode.sin6_port), + u32::from_be(decode.sin6_flowinfo), + decode.sin6_scope_id, + ))) + } + c::AF_UNIX => { + if len < offsetof_sun_path { + return Err(io::Errno::INVAL); + } + if len == offsetof_sun_path { + Ok(SocketAddrAny::Unix(SocketAddrUnix::new(&[][..])?)) + } else { + let decode = *storage.cast::(); + assert_eq!( + decode.sun_path[len - 1 - offsetof_sun_path], + b'\0' as c::c_char + ); + Ok(SocketAddrAny::Unix(SocketAddrUnix::new( + decode.sun_path[..len - 1 - offsetof_sun_path] + .iter() + .map(|c| *c as u8) + .collect::>(), + )?)) + } + } + _ => Err(io::Errno::NOTSUP), + } +} + +/// Read a socket address returned from the OS. +/// +/// # Safety +/// +/// `storage` must point to a valid socket address returned from the OS. +pub(crate) unsafe fn maybe_read_sockaddr_os( + storage: *const c::sockaddr, + len: usize, +) -> Option { + if len == 0 { + None + } else { + Some(read_sockaddr_os(storage, len)) + } +} + +/// Read a socket address returned from the OS. +/// +/// # Safety +/// +/// `storage` must point to a valid socket address returned from the OS. +pub(crate) unsafe fn read_sockaddr_os(storage: *const c::sockaddr, len: usize) -> SocketAddrAny { + let offsetof_sun_path = super::addr::offsetof_sun_path(); + + assert!(len >= size_of::()); + match read_ss_family(storage).into() { + c::AF_INET => { + assert!(len >= size_of::()); + let decode = *storage.cast::(); + SocketAddrAny::V4(SocketAddrV4::new( + Ipv4Addr::from(u32::from_be(decode.sin_addr.s_addr)), + u16::from_be(decode.sin_port), + )) + } + c::AF_INET6 => { + assert!(len >= size_of::()); + let decode = *storage.cast::(); + SocketAddrAny::V6(SocketAddrV6::new( + Ipv6Addr::from(decode.sin6_addr.in6_u.u6_addr8), + u16::from_be(decode.sin6_port), + u32::from_be(decode.sin6_flowinfo), + decode.sin6_scope_id, + )) + } + c::AF_UNIX => { + assert!(len >= offsetof_sun_path); + if len == offsetof_sun_path { + SocketAddrAny::Unix(SocketAddrUnix::new(&[][..]).unwrap()) + } else { + let decode = *storage.cast::(); + assert_eq!( + decode.sun_path[len - 1 - offsetof_sun_path], + b'\0' as c::c_char + ); + SocketAddrAny::Unix( + SocketAddrUnix::new( + decode.sun_path[..len - 1 - offsetof_sun_path] + .iter() + .map(|c| *c as u8) + .collect::>(), + ) + .unwrap(), + ) + } + } + other => unimplemented!("{:?}", other), + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/send_recv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/send_recv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/send_recv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/send_recv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,42 @@ +use super::super::c; +use bitflags::bitflags; + +bitflags! { + /// `MSG_*` + 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_EOT` + const EOT = c::MSG_EOR; + /// `MSG_MORE` + const MORE = c::MSG_MORE; + /// `MSG_NOSIGNAL` + const NOSIGNAL = c::MSG_NOSIGNAL; + /// `MSG_OOB` + const OOB = c::MSG_OOB; + } +} + +bitflags! { + /// `MSG_*` + 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; + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1248 @@ +//! linux_raw syscalls supporting `rustix::net`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::c; +use super::super::conv::{ + by_mut, by_ref, c_int, c_uint, ret, ret_owned_fd, ret_usize, size_of, slice, slice_mut, + socklen_t, zero, +}; +use super::read_sockaddr::{initialize_family_to_unspec, maybe_read_sockaddr_os, read_sockaddr_os}; +use super::send_recv::{RecvFlags, SendFlags}; +use super::types::{AcceptFlags, AddressFamily, Protocol, Shutdown, SocketFlags, SocketType}; +use super::write_sockaddr::{encode_sockaddr_v4, encode_sockaddr_v6}; +use crate::fd::{BorrowedFd, OwnedFd}; +use crate::io; +use crate::net::{SocketAddrAny, SocketAddrUnix, SocketAddrV4, SocketAddrV6}; +use c::{sockaddr, sockaddr_in, sockaddr_in6, socklen_t}; +use core::convert::TryInto; +use core::mem::MaybeUninit; +#[cfg(target_arch = "x86")] +use { + super::super::conv::{slice_just_addr, x86_sys}, + super::super::reg::{ArgReg, SocketArg}, + linux_raw_sys::general::{ + SYS_ACCEPT, SYS_ACCEPT4, SYS_BIND, SYS_CONNECT, SYS_GETPEERNAME, SYS_GETSOCKNAME, + SYS_GETSOCKOPT, SYS_LISTEN, SYS_RECV, SYS_RECVFROM, SYS_SEND, SYS_SENDTO, SYS_SETSOCKOPT, + SYS_SHUTDOWN, SYS_SOCKET, SYS_SOCKETPAIR, + }, +}; + +#[inline] +pub(crate) fn socket( + family: AddressFamily, + type_: SocketType, + protocol: Protocol, +) -> io::Result { + #[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::, _>(&[ + family.into(), + type_.into(), + protocol.into(), + ]) + )) + } +} + +#[inline] +pub(crate) fn socket_with( + family: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: Protocol, +) -> io::Result { + #[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::, _>(&[ + family.into(), + (type_, flags).into(), + protocol.into(), + ]) + )) + } +} + +#[inline] +pub(crate) fn socketpair( + family: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: 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::, _>(&[ + 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 { + #[cfg(not(target_arch = "x86"))] + 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::, _>(&[fd.into(), zero(), zero()]) + ))?; + Ok(fd) + } +} + +#[inline] +pub(crate) fn accept_with(fd: BorrowedFd<'_>, flags: AcceptFlags) -> io::Result { + #[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::, _>(&[fd.into(), zero(), zero(), flags.into()]) + ))?; + Ok(fd) + } +} + +#[inline] +pub(crate) fn acceptfrom(fd: BorrowedFd<'_>) -> io::Result<(OwnedFd, Option)> { + #[cfg(not(target_arch = "x86"))] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + let fd = ret_owned_fd(syscall!( + __NR_accept, + fd, + &mut storage, + by_mut(&mut addrlen) + ))?; + Ok(( + fd, + maybe_read_sockaddr_os(&storage.assume_init(), addrlen.try_into().unwrap()), + )) + } + #[cfg(target_arch = "x86")] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + let fd = ret_owned_fd(syscall!( + __NR_socketcall, + x86_sys(SYS_ACCEPT), + slice_just_addr::, _>(&[ + fd.into(), + (&mut storage).into(), + by_mut(&mut addrlen), + ]) + ))?; + Ok(( + fd, + maybe_read_sockaddr_os(&storage.assume_init(), addrlen.try_into().unwrap()), + )) + } +} + +#[inline] +pub(crate) fn acceptfrom_with( + fd: BorrowedFd<'_>, + flags: AcceptFlags, +) -> io::Result<(OwnedFd, Option)> { + #[cfg(not(target_arch = "x86"))] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + let fd = ret_owned_fd(syscall!( + __NR_accept4, + fd, + &mut storage, + by_mut(&mut addrlen), + flags + ))?; + Ok(( + fd, + maybe_read_sockaddr_os(&storage.assume_init(), addrlen.try_into().unwrap()), + )) + } + #[cfg(target_arch = "x86")] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + let fd = ret_owned_fd(syscall!( + __NR_socketcall, + x86_sys(SYS_ACCEPT4), + slice_just_addr::, _>(&[ + fd.into(), + (&mut storage).into(), + by_mut(&mut addrlen), + flags.into(), + ]) + ))?; + Ok(( + fd, + maybe_read_sockaddr_os(&storage.assume_init(), addrlen.try_into().unwrap()), + )) + } +} + +#[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::, _>(&[fd.into(), c_uint(how as c::c_uint)]) + )) + } +} + +#[inline] +pub(crate) fn send(fd: BorrowedFd<'_>, buf: &[u8], flags: SendFlags) -> io::Result { + let (buf_addr, buf_len) = slice(buf); + + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "mips64", + target_arch = "riscv64", + 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 = "riscv64", + 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::, _>(&[fd.into(), buf_addr, buf_len, flags.into()]) + )) + } +} + +#[inline] +pub(crate) fn sendto_v4( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV4, +) -> io::Result { + let (buf_addr, buf_len) = slice(buf); + + #[cfg(not(target_arch = "x86"))] + unsafe { + ret_usize(syscall_readonly!( + __NR_sendto, + fd, + buf_addr, + buf_len, + flags, + by_ref(&encode_sockaddr_v4(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret_usize(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_SENDTO), + slice_just_addr::, _>(&[ + fd.into(), + buf_addr, + buf_len, + flags.into(), + by_ref(&encode_sockaddr_v4(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn sendto_v6( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV6, +) -> io::Result { + let (buf_addr, buf_len) = slice(buf); + + #[cfg(not(target_arch = "x86"))] + unsafe { + ret_usize(syscall_readonly!( + __NR_sendto, + fd, + buf_addr, + buf_len, + flags, + by_ref(&encode_sockaddr_v6(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret_usize(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_SENDTO), + slice_just_addr::, _>(&[ + fd.into(), + buf_addr, + buf_len, + flags.into(), + by_ref(&encode_sockaddr_v6(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn sendto_unix( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrUnix, +) -> io::Result { + let (buf_addr, buf_len) = slice(buf); + + #[cfg(not(target_arch = "x86"))] + unsafe { + ret_usize(syscall_readonly!( + __NR_sendto, + fd, + buf_addr, + buf_len, + flags, + by_ref(&addr.unix), + socklen_t(addr.addr_len()) + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret_usize(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_SENDTO), + slice_just_addr::, _>(&[ + fd.into(), + buf_addr, + buf_len, + flags.into(), + by_ref(&addr.unix), + socklen_t(addr.addr_len()), + ]) + )) + } +} + +#[inline] +pub(crate) fn recv(fd: BorrowedFd<'_>, buf: &mut [u8], flags: RecvFlags) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + + #[cfg(not(any( + target_arch = "aarch64", + target_arch = "mips64", + target_arch = "riscv64", + target_arch = "x86", + target_arch = "x86_64", + )))] + unsafe { + ret_usize(syscall!(__NR_recv, fd, buf_addr_mut, buf_len, flags)) + } + #[cfg(any( + target_arch = "aarch64", + target_arch = "mips64", + target_arch = "riscv64", + target_arch = "x86_64", + ))] + unsafe { + ret_usize(syscall!( + __NR_recvfrom, + fd, + buf_addr_mut, + buf_len, + flags, + zero(), + zero() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret_usize(syscall!( + __NR_socketcall, + x86_sys(SYS_RECV), + slice_just_addr::, _>(&[ + fd.into(), + buf_addr_mut, + buf_len, + flags.into(), + ]) + )) + } +} + +#[inline] +pub(crate) fn recvfrom( + fd: BorrowedFd<'_>, + buf: &mut [u8], + flags: RecvFlags, +) -> io::Result<(usize, Option)> { + let (buf_addr_mut, buf_len) = slice_mut(buf); + + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + + unsafe { + // `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(storage.as_mut_ptr()); + + #[cfg(not(target_arch = "x86"))] + let nread = ret_usize(syscall!( + __NR_recvfrom, + fd, + buf_addr_mut, + buf_len, + flags, + &mut storage, + by_mut(&mut addrlen) + ))?; + #[cfg(target_arch = "x86")] + let nread = ret_usize(syscall!( + __NR_socketcall, + x86_sys(SYS_RECVFROM), + slice_just_addr::, _>(&[ + fd.into(), + buf_addr_mut, + buf_len, + flags.into(), + (&mut storage).into(), + by_mut(&mut addrlen), + ]) + ))?; + + Ok(( + nread, + maybe_read_sockaddr_os(&storage.assume_init(), addrlen.try_into().unwrap()), + )) + } +} + +#[inline] +pub(crate) fn getpeername(fd: BorrowedFd<'_>) -> io::Result> { + #[cfg(not(target_arch = "x86"))] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + ret(syscall!( + __NR_getpeername, + fd, + &mut storage, + by_mut(&mut addrlen) + ))?; + Ok(maybe_read_sockaddr_os( + &storage.assume_init(), + addrlen.try_into().unwrap(), + )) + } + #[cfg(target_arch = "x86")] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + ret(syscall!( + __NR_socketcall, + x86_sys(SYS_GETPEERNAME), + slice_just_addr::, _>(&[ + fd.into(), + (&mut storage).into(), + by_mut(&mut addrlen), + ]) + ))?; + Ok(maybe_read_sockaddr_os( + &storage.assume_init(), + addrlen.try_into().unwrap(), + )) + } +} + +#[inline] +pub(crate) fn getsockname(fd: BorrowedFd<'_>) -> io::Result { + #[cfg(not(target_arch = "x86"))] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + ret(syscall!( + __NR_getsockname, + fd, + &mut storage, + by_mut(&mut addrlen) + ))?; + Ok(read_sockaddr_os( + &storage.assume_init(), + addrlen.try_into().unwrap(), + )) + } + #[cfg(target_arch = "x86")] + unsafe { + let mut addrlen = core::mem::size_of::() as socklen_t; + let mut storage = MaybeUninit::::uninit(); + ret(syscall!( + __NR_socketcall, + x86_sys(SYS_GETSOCKNAME), + slice_just_addr::, _>(&[ + fd.into(), + (&mut storage).into(), + by_mut(&mut addrlen), + ]) + ))?; + Ok(read_sockaddr_os( + &storage.assume_init(), + addrlen.try_into().unwrap(), + )) + } +} + +#[inline] +pub(crate) fn bind_v4(fd: BorrowedFd<'_>, addr: &SocketAddrV4) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_bind, + fd, + by_ref(&encode_sockaddr_v4(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_BIND), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&encode_sockaddr_v4(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn bind_v6(fd: BorrowedFd<'_>, addr: &SocketAddrV6) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_bind, + fd, + by_ref(&encode_sockaddr_v6(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_BIND), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&encode_sockaddr_v6(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn bind_unix(fd: BorrowedFd<'_>, addr: &SocketAddrUnix) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_bind, + fd, + by_ref(&addr.unix), + socklen_t(addr.addr_len()) + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_BIND), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&addr.unix), + socklen_t(addr.addr_len()), + ]) + )) + } +} + +#[inline] +pub(crate) fn connect_v4(fd: BorrowedFd<'_>, addr: &SocketAddrV4) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_connect, + fd, + by_ref(&encode_sockaddr_v4(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_CONNECT), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&encode_sockaddr_v4(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn connect_v6(fd: BorrowedFd<'_>, addr: &SocketAddrV6) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_connect, + fd, + by_ref(&encode_sockaddr_v6(addr)), + size_of::() + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_CONNECT), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&encode_sockaddr_v6(addr)), + size_of::(), + ]) + )) + } +} + +#[inline] +pub(crate) fn connect_unix(fd: BorrowedFd<'_>, addr: &SocketAddrUnix) -> io::Result<()> { + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_connect, + fd, + by_ref(&addr.unix), + socklen_t(addr.addr_len()) + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_CONNECT), + slice_just_addr::, _>(&[ + fd.into(), + by_ref(&addr.unix), + socklen_t(addr.addr_len()), + ]) + )) + } +} + +#[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::, _>(&[fd.into(), c_int(backlog)]) + )) + } +} + +pub(crate) mod sockopt { + use super::{c, BorrowedFd}; + use crate::io; + use crate::net::sockopt::Timeout; + use crate::net::{Ipv4Addr, Ipv6Addr, SocketType}; + use c::{SO_RCVTIMEO_NEW, SO_RCVTIMEO_OLD, SO_SNDTIMEO_NEW, SO_SNDTIMEO_OLD}; + use core::convert::TryInto; + use core::time::Duration; + use linux_raw_sys::general::{__kernel_timespec, timeval}; + + // TODO: With Rust 1.53 we can use `Duration::ZERO` instead. + const DURATION_ZERO: Duration = Duration::from_secs(0); + + #[inline] + fn getsockopt(fd: BorrowedFd<'_>, level: u32, optname: u32) -> io::Result { + use super::*; + + let mut optlen = core::mem::size_of::(); + debug_assert!( + optlen as usize >= core::mem::size_of::(), + "Socket APIs don't ever use `bool` directly" + ); + + #[cfg(not(target_arch = "x86"))] + unsafe { + let mut value = MaybeUninit::::uninit(); + ret(syscall!( + __NR_getsockopt, + fd, + c_uint(level), + c_uint(optname), + &mut value, + by_mut(&mut optlen) + ))?; + + assert_eq!( + optlen as usize, + core::mem::size_of::(), + "unexpected getsockopt size" + ); + Ok(value.assume_init()) + } + #[cfg(target_arch = "x86")] + unsafe { + let mut value = MaybeUninit::::uninit(); + ret(syscall!( + __NR_socketcall, + x86_sys(SYS_GETSOCKOPT), + slice_just_addr::, _>(&[ + fd.into(), + c_uint(level), + c_uint(optname), + (&mut value).into(), + by_mut(&mut optlen), + ]) + ))?; + assert_eq!( + optlen as usize, + core::mem::size_of::(), + "unexpected getsockopt size" + ); + Ok(value.assume_init()) + } + } + + #[inline] + fn setsockopt( + fd: BorrowedFd<'_>, + level: u32, + optname: u32, + value: T, + ) -> io::Result<()> { + use super::*; + + let optlen = core::mem::size_of::().try_into().unwrap(); + debug_assert!( + optlen as usize >= core::mem::size_of::(), + "Socket APIs don't ever use `bool` directly" + ); + + #[cfg(not(target_arch = "x86"))] + unsafe { + ret(syscall_readonly!( + __NR_setsockopt, + fd, + c_uint(level), + c_uint(optname), + by_ref(&value), + socklen_t(optlen) + )) + } + #[cfg(target_arch = "x86")] + unsafe { + ret(syscall_readonly!( + __NR_socketcall, + x86_sys(SYS_SETSOCKOPT), + slice_just_addr::, _>(&[ + fd.into(), + c_uint(level), + c_uint(optname), + by_ref(&value), + socklen_t(optlen), + ]) + )) + } + } + + #[inline] + pub(crate) fn get_socket_type(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_TYPE) + } + + #[inline] + pub(crate) fn set_socket_reuseaddr(fd: BorrowedFd<'_>, reuseaddr: bool) -> io::Result<()> { + setsockopt( + fd, + c::SOL_SOCKET as _, + c::SO_REUSEADDR, + from_bool(reuseaddr), + ) + } + + #[inline] + pub(crate) fn set_socket_broadcast(fd: BorrowedFd<'_>, broadcast: bool) -> io::Result<()> { + setsockopt( + fd, + c::SOL_SOCKET as _, + c::SO_BROADCAST, + from_bool(broadcast), + ) + } + + #[inline] + pub(crate) fn get_socket_broadcast(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_BROADCAST).map(to_bool) + } + + #[inline] + pub(crate) fn set_socket_linger( + fd: BorrowedFd<'_>, + linger: Option, + ) -> io::Result<()> { + // Convert `linger` to seconds, rounding up. + let l_linger = if let Some(linger) = linger { + let mut l_linger = linger.as_secs(); + if linger.subsec_nanos() != 0 { + l_linger = l_linger.checked_add(1).ok_or(io::Errno::INVAL)?; + } + l_linger.try_into().map_err(|_e| io::Errno::INVAL)? + } else { + 0 + }; + let linger = c::linger { + l_onoff: c::c_int::from(linger.is_some()), + l_linger, + }; + setsockopt(fd, c::SOL_SOCKET as _, c::SO_LINGER, linger) + } + + #[inline] + pub(crate) fn get_socket_linger(fd: BorrowedFd<'_>) -> io::Result> { + let linger: c::linger = getsockopt(fd, c::SOL_SOCKET as _, c::SO_LINGER)?; + // TODO: With Rust 1.50, this could use `.then`. + Ok(if linger.l_onoff != 0 { + Some(Duration::from_secs(linger.l_linger as u64)) + } else { + None + }) + } + + #[inline] + pub(crate) fn set_socket_passcred(fd: BorrowedFd<'_>, passcred: bool) -> io::Result<()> { + setsockopt(fd, c::SOL_SOCKET as _, c::SO_PASSCRED, from_bool(passcred)) + } + + #[inline] + pub(crate) fn get_socket_passcred(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::SOL_SOCKET as _, c::SO_PASSCRED).map(to_bool) + } + + #[inline] + pub(crate) fn set_socket_timeout( + fd: BorrowedFd<'_>, + id: Timeout, + timeout: Option, + ) -> io::Result<()> { + let time = duration_to_linux(timeout)?; + let optname = match id { + Timeout::Recv => SO_RCVTIMEO_NEW, + Timeout::Send => SO_SNDTIMEO_NEW, + }; + match setsockopt(fd, c::SOL_SOCKET, optname, time) { + Err(io::Errno::NOPROTOOPT) if SO_RCVTIMEO_NEW != SO_RCVTIMEO_OLD => { + set_socket_timeout_old(fd, id, timeout) + } + otherwise => otherwise, + } + } + + /// Same as `set_socket_timeout` but uses `timeval` instead of + /// `__kernel_timespec` and `_OLD` constants instead of `_NEW`. + fn set_socket_timeout_old( + fd: BorrowedFd<'_>, + id: Timeout, + timeout: Option, + ) -> io::Result<()> { + let time = duration_to_linux_old(timeout)?; + let optname = match id { + Timeout::Recv => SO_RCVTIMEO_OLD, + Timeout::Send => SO_SNDTIMEO_OLD, + }; + setsockopt(fd, c::SOL_SOCKET, optname, time) + } + + #[inline] + pub(crate) fn get_socket_timeout( + fd: BorrowedFd<'_>, + id: Timeout, + ) -> io::Result> { + let optname = match id { + Timeout::Recv => SO_RCVTIMEO_NEW, + Timeout::Send => SO_SNDTIMEO_NEW, + }; + let time: __kernel_timespec = match getsockopt(fd, c::SOL_SOCKET, optname) { + Err(io::Errno::NOPROTOOPT) if SO_RCVTIMEO_NEW != SO_RCVTIMEO_OLD => { + return get_socket_timeout_old(fd, id) + } + otherwise => otherwise?, + }; + Ok(duration_from_linux(time)) + } + + /// Same as `get_socket_timeout` but uses `timeval` instead of + /// `__kernel_timespec` and `_OLD` constants instead of `_NEW`. + fn get_socket_timeout_old(fd: BorrowedFd<'_>, id: Timeout) -> io::Result> { + let optname = match id { + Timeout::Recv => SO_RCVTIMEO_OLD, + Timeout::Send => SO_SNDTIMEO_OLD, + }; + let time: timeval = getsockopt(fd, c::SOL_SOCKET, optname)?; + Ok(duration_from_linux_old(time)) + } + + /// Convert a C `timespec` to a Rust `Option`. + #[inline] + fn duration_from_linux(time: __kernel_timespec) -> Option { + if time.tv_sec == 0 && time.tv_nsec == 0 { + None + } else { + Some( + Duration::from_secs(time.tv_sec as u64) + Duration::from_nanos(time.tv_nsec as u64), + ) + } + } + + /// Like `duration_from_linux` but uses Linux's old 32-bit `timeval`. + fn duration_from_linux_old(time: timeval) -> Option { + 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` to a C `timespec`. + #[inline] + fn duration_to_linux(timeout: Option) -> io::Result<__kernel_timespec> { + Ok(match timeout { + Some(timeout) => { + if timeout == DURATION_ZERO { + return Err(io::Errno::INVAL); + } + let mut timeout = __kernel_timespec { + tv_sec: timeout.as_secs().try_into().unwrap_or(i64::MAX), + tv_nsec: timeout.subsec_nanos().into(), + }; + if timeout.tv_sec == 0 && timeout.tv_nsec == 0 { + timeout.tv_nsec = 1; + } + timeout + } + None => __kernel_timespec { + tv_sec: 0, + tv_nsec: 0, + }, + }) + } + + /// Like `duration_to_linux` but uses Linux's old 32-bit `timeval`. + fn duration_to_linux_old(timeout: Option) -> io::Result { + 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 = 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 => timeval { + tv_sec: 0, + tv_usec: 0, + }, + }) + } + + #[inline] + pub(crate) fn set_ip_ttl(fd: BorrowedFd<'_>, ttl: u32) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_IP as _, c::IP_TTL, ttl) + } + + #[inline] + pub(crate) fn get_ip_ttl(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IP_TTL) + } + + #[inline] + pub(crate) fn set_ipv6_v6only(fd: BorrowedFd<'_>, only_v6: bool) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_IPV6 as _, c::IPV6_V6ONLY, from_bool(only_v6)) + } + + #[inline] + pub(crate) fn get_ipv6_v6only(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IPV6 as _, c::IPV6_V6ONLY).map(to_bool) + } + + #[inline] + pub(crate) fn set_ip_multicast_loop( + fd: BorrowedFd<'_>, + multicast_loop: bool, + ) -> io::Result<()> { + setsockopt( + fd, + c::IPPROTO_IP as _, + c::IP_MULTICAST_LOOP, + from_bool(multicast_loop), + ) + } + + #[inline] + pub(crate) fn get_ip_multicast_loop(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, 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 as _, c::IP_MULTICAST_TTL, multicast_ttl) + } + + #[inline] + pub(crate) fn get_ip_multicast_ttl(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IP_MULTICAST_TTL) + } + + #[inline] + pub(crate) fn set_ipv6_multicast_loop( + fd: BorrowedFd<'_>, + multicast_loop: bool, + ) -> io::Result<()> { + setsockopt( + fd, + c::IPPROTO_IPV6 as _, + c::IPV6_MULTICAST_LOOP, + from_bool(multicast_loop), + ) + } + + #[inline] + pub(crate) fn get_ipv6_multicast_loop(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IPV6 as _, 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 as _, + c::IPV6_MULTICAST_LOOP, + multicast_hops, + ) + } + + #[inline] + pub(crate) fn get_ipv6_multicast_hops(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_IP as _, c::IPV6_MULTICAST_LOOP) + } + + #[inline] + pub(crate) fn set_ip_add_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, + ) -> io::Result<()> { + let mreq = to_imr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IP as _, c::IP_ADD_MEMBERSHIP, mreq) + } + + #[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 as _, c::IPV6_ADD_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_ip_drop_membership( + fd: BorrowedFd<'_>, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, + ) -> io::Result<()> { + let mreq = to_imr(multiaddr, interface); + setsockopt(fd, c::IPPROTO_IP as _, c::IP_DROP_MEMBERSHIP, mreq) + } + + #[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 as _, c::IPV6_DROP_MEMBERSHIP, mreq) + } + + #[inline] + pub(crate) fn set_tcp_nodelay(fd: BorrowedFd<'_>, nodelay: bool) -> io::Result<()> { + setsockopt(fd, c::IPPROTO_TCP as _, c::TCP_NODELAY, from_bool(nodelay)) + } + + #[inline] + pub(crate) fn get_tcp_nodelay(fd: BorrowedFd<'_>) -> io::Result { + getsockopt(fd, c::IPPROTO_TCP as _, c::TCP_NODELAY).map(to_bool) + } + + #[inline] + fn to_imr(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_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::general::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 + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,282 @@ +use super::super::c; +use bitflags::bitflags; + +/// A type for holding raw integer socket types. +#[doc(hidden)] +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); + + /// `SOCK_DGRAM` + pub const DGRAM: Self = Self(c::SOCK_DGRAM); + + /// `SOCK_SEQPACKET` + pub const SEQPACKET: Self = Self(c::SOCK_SEQPACKET); + + /// `SOCK_RAW` + pub const RAW: Self = Self(c::SOCK_RAW); + + /// `SOCK_RDM` + pub const RDM: Self = Self(c::SOCK_RDM); + + /// 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. +#[doc(hidden)] +pub type RawAddressFamily = c::sa_family_t; + +/// `AF_*` constants. +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(transparent)] +pub struct AddressFamily(pub(crate) RawAddressFamily); + +#[rustfmt::skip] +impl AddressFamily { + /// `AF_UNSPEC` + pub const UNSPEC: Self = Self(c::AF_UNSPEC as _); + /// `AF_INET` + pub const INET: Self = Self(c::AF_INET as _); + /// `AF_INET6` + pub const INET6: Self = Self(c::AF_INET6 as _); + /// `AF_NETLINK` + 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` + pub const AX25: Self = Self(c::AF_AX25 as _); + /// `AF_IPX` + pub const IPX: Self = Self(c::AF_IPX as _); + /// `AF_APPLETALK` + pub const APPLETALK: Self = Self(c::AF_APPLETALK as _); + /// `AF_NETROM` + pub const NETROM: Self = Self(c::AF_NETROM as _); + /// `AF_BRIDGE` + pub const BRIDGE: Self = Self(c::AF_BRIDGE as _); + /// `AF_ATMPVC` + pub const ATMPVC: Self = Self(c::AF_ATMPVC as _); + /// `AF_X25` + pub const X25: Self = Self(c::AF_X25 as _); + /// `AF_ROSE` + pub const ROSE: Self = Self(c::AF_ROSE as _); + /// `AF_DECnet` + #[allow(non_upper_case_globals)] + pub const DECnet: Self = Self(c::AF_DECnet as _); + /// `AF_NETBEUI` + pub const NETBEUI: Self = Self(c::AF_NETBEUI as _); + /// `AF_SECURITY` + pub const SECURITY: Self = Self(c::AF_SECURITY as _); + /// `AF_KEY` + pub const KEY: Self = Self(c::AF_KEY as _); + /// `AF_PACKET` + pub const PACKET: Self = Self(c::AF_PACKET as _); + /// `AF_ASH` + pub const ASH: Self = Self(c::AF_ASH as _); + /// `AF_ECONET` + pub const ECONET: Self = Self(c::AF_ECONET as _); + /// `AF_ATMSVC` + pub const ATMSVC: Self = Self(c::AF_ATMSVC as _); + /// `AF_RDS` + pub const RDS: Self = Self(c::AF_RDS as _); + /// `AF_SNA` + pub const SNA: Self = Self(c::AF_SNA as _); + /// `AF_IRDA` + pub const IRDA: Self = Self(c::AF_IRDA as _); + /// `AF_PPPOX` + pub const PPPOX: Self = Self(c::AF_PPPOX as _); + /// `AF_WANPIPE` + pub const WANPIPE: Self = Self(c::AF_WANPIPE as _); + /// `AF_LLC` + pub const LLC: Self = Self(c::AF_LLC as _); + /// `AF_CAN` + pub const CAN: Self = Self(c::AF_CAN as _); + /// `AF_TIPC` + pub const TIPC: Self = Self(c::AF_TIPC as _); + /// `AF_BLUETOOTH` + pub const BLUETOOTH: Self = Self(c::AF_BLUETOOTH as _); + /// `AF_IUCV` + pub const IUCV: Self = Self(c::AF_IUCV as _); + /// `AF_RXRPC` + pub const RXRPC: Self = Self(c::AF_RXRPC as _); + /// `AF_ISDN` + pub const ISDN: Self = Self(c::AF_ISDN as _); + /// `AF_PHONET` + pub const PHONET: Self = Self(c::AF_PHONET as _); + /// `AF_IEEE802154` + pub const IEEE802154: Self = Self(c::AF_IEEE802154 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. +#[doc(hidden)] +pub type RawProtocol = u32; + +/// `IPPROTO_*` +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(transparent)] +pub struct Protocol(pub(crate) RawProtocol); + +#[rustfmt::skip] +impl Protocol { + /// `IPPROTO_IP` + pub const IP: Self = Self(c::IPPROTO_IP as _); + /// `IPPROTO_ICMP` + pub const ICMP: Self = Self(c::IPPROTO_ICMP as _); + /// `IPPROTO_IGMP` + pub const IGMP: Self = Self(c::IPPROTO_IGMP as _); + /// `IPPROTO_IPIP` + pub const IPIP: Self = Self(c::IPPROTO_IPIP as _); + /// `IPPROTO_TCP` + pub const TCP: Self = Self(c::IPPROTO_TCP as _); + /// `IPPROTO_EGP` + pub const EGP: Self = Self(c::IPPROTO_EGP as _); + /// `IPPROTO_PUP` + pub const PUP: Self = Self(c::IPPROTO_PUP as _); + /// `IPPROTO_UDP` + pub const UDP: Self = Self(c::IPPROTO_UDP as _); + /// `IPPROTO_IDP` + pub const IDP: Self = Self(c::IPPROTO_IDP as _); + /// `IPPROTO_TP` + pub const TP: Self = Self(c::IPPROTO_TP as _); + /// `IPPROTO_DCCP` + pub const DCCP: Self = Self(c::IPPROTO_DCCP as _); + /// `IPPROTO_IPV6` + pub const IPV6: Self = Self(c::IPPROTO_IPV6 as _); + /// `IPPROTO_RSVP` + pub const RSVP: Self = Self(c::IPPROTO_RSVP as _); + /// `IPPROTO_GRE` + pub const GRE: Self = Self(c::IPPROTO_GRE as _); + /// `IPPROTO_ESP` + pub const ESP: Self = Self(c::IPPROTO_ESP as _); + /// `IPPROTO_AH` + pub const AH: Self = Self(c::IPPROTO_AH as _); + /// `IPPROTO_MTP` + pub const MTP: Self = Self(c::IPPROTO_MTP as _); + /// `IPPROTO_BEETPH` + pub const BEETPH: Self = Self(c::IPPROTO_BEETPH as _); + /// `IPPROTO_ENCAP` + pub const ENCAP: Self = Self(c::IPPROTO_ENCAP as _); + /// `IPPROTO_PIM` + pub const PIM: Self = Self(c::IPPROTO_PIM as _); + /// `IPPROTO_COMP` + pub const COMP: Self = Self(c::IPPROTO_COMP as _); + /// `IPPROTO_SCTP` + pub const SCTP: Self = Self(c::IPPROTO_SCTP as _); + /// `IPPROTO_UDPLITE` + pub const UDPLITE: Self = Self(c::IPPROTO_UDPLITE as _); + /// `IPPROTO_MPLS` + pub const MPLS: Self = Self(c::IPPROTO_MPLS as _); + /// `IPPROTO_ETHERNET` + pub const ETHERNET: Self = Self(c::IPPROTO_ETHERNET as _); + /// `IPPROTO_RAW` + pub const RAW: Self = Self(c::IPPROTO_RAW as _); + /// `IPPROTO_MPTCP` + pub const MPTCP: Self = Self(c::IPPROTO_MPTCP as _); + /// `IPPROTO_FRAGMENT` + pub const FRAGMENT: Self = Self(c::IPPROTO_FRAGMENT as _); + /// `IPPROTO_ICMPV6` + pub const ICMPV6: Self = Self(c::IPPROTO_ICMPV6 as _); + /// `IPPROTO_MH` + pub const MH: Self = Self(c::IPPROTO_MH as _); + /// `IPPROTO_ROUTING` + pub const ROUTING: Self = Self(c::IPPROTO_ROUTING as _); + + /// 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_WR`—Disable further read operations. + Read = c::SHUT_RD, + /// `SHUT_WR`—Disable further write operations. + Write = c::SHUT_WR, + /// `SHUT_RDWR`—Disable further read and write operations. + ReadWrite = c::SHUT_RDWR, +} + +bitflags! { + /// `SOCK_*` constants for use with [`accept_with`] and [`acceptfrom_with`]. + /// + /// [`accept_with`]: crate::net::accept_with + /// [`acceptfrom_with`]: crate::net::acceptfrom_with + pub struct AcceptFlags: c::c_uint { + /// `SOCK_NONBLOCK` + const NONBLOCK = c::O_NONBLOCK; + /// `SOCK_CLOEXEC` + const CLOEXEC = c::O_CLOEXEC; + } +} + +bitflags! { + /// `SOCK_*` constants for use with [`socket`]. + /// + /// [`socket`]: crate::net::socket + pub struct SocketFlags: c::c_uint { + /// `SOCK_NONBLOCK` + const NONBLOCK = c::O_NONBLOCK; + + /// `SOCK_CLOEXEC` + const CLOEXEC = c::O_CLOEXEC; + } +} + +/// Timeout identifier for use with [`set_socket_timeout`] and +/// [`get_socket_timeout`]. +/// +/// [`set_socket_timeout`]: crate::net::sockopt::set_socket_timeout. +/// [`get_socket_timeout`]: crate::net::sockopt::get_socket_timeout. +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +#[repr(u32)] +pub enum Timeout { + /// `SO_RCVTIMEO`—Timeout for receiving. + Recv = c::SO_RCVTIMEO_NEW, + + /// `SO_SNDTIMEO`—Timeout for sending. + Send = c::SO_SNDTIMEO_NEW, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/write_sockaddr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/write_sockaddr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/write_sockaddr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/net/write_sockaddr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,60 @@ +//! The BSD sockets API requires us to read the `ss_family` field before +//! we can interpret the rest of a `sockaddr` produced by the kernel. +#![allow(unsafe_code)] + +use super::super::c; +use crate::net::{SocketAddrAny, SocketAddrStorage, SocketAddrUnix, SocketAddrV4, SocketAddrV6}; +use core::mem::size_of; + +pub(crate) unsafe fn write_sockaddr( + addr: &SocketAddrAny, + storage: *mut SocketAddrStorage, +) -> usize { + match addr { + SocketAddrAny::V4(v4) => write_sockaddr_v4(v4, storage), + SocketAddrAny::V6(v6) => write_sockaddr_v6(v6, storage), + SocketAddrAny::Unix(unix) => write_sockaddr_unix(unix, storage), + } +} + +pub(crate) unsafe 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], + } +} + +unsafe fn write_sockaddr_v4(v4: &SocketAddrV4, storage: *mut SocketAddrStorage) -> usize { + let encoded = encode_sockaddr_v4(v4); + core::ptr::write(storage.cast(), encoded); + size_of::() +} + +pub(crate) unsafe 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::general::in6_addr__bindgen_ty_1 { + u6_addr8: v6.ip().octets(), + }, + }, + sin6_scope_id: v6.scope_id(), + } +} + +unsafe fn write_sockaddr_v6(v6: &SocketAddrV6, storage: *mut SocketAddrStorage) -> usize { + let encoded = encode_sockaddr_v6(v6); + core::ptr::write(storage.cast(), encoded); + size_of::() +} + +unsafe fn write_sockaddr_unix(unix: &SocketAddrUnix, storage: *mut SocketAddrStorage) -> usize { + core::ptr::write(storage.cast(), unix.unix); + unix.len() +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/auxv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/auxv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/auxv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/auxv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,377 @@ +//! Linux auxv support. +//! +//! # Safety +//! +//! This uses raw pointers to locate and read the kernel-provided auxv array. +#![allow(unsafe_code)] + +use super::super::c; +use super::super::elf::*; +use crate::fd::OwnedFd; +#[cfg(feature = "param")] +use crate::ffi::CStr; +#[cfg(not(target_vendor = "mustang"))] +use crate::fs::{Mode, OFlags}; +use crate::utils::{as_ptr, check_raw_pointer}; +use alloc::vec::Vec; +use core::ffi::c_void; +use core::mem::size_of; +use core::ptr::{null_mut, read_unaligned, NonNull}; +#[cfg(feature = "runtime")] +use core::slice; +use core::sync::atomic::Ordering::Relaxed; +use core::sync::atomic::{AtomicPtr, AtomicUsize}; +use linux_raw_sys::general::{ + AT_BASE, AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_NULL, AT_PAGESZ, AT_PHDR, AT_PHENT, + AT_PHNUM, AT_SYSINFO_EHDR, +}; + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn page_size() -> usize { + let mut page_size = PAGE_SIZE.load(Relaxed); + + if page_size == 0 { + init_from_proc_self_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_from_proc_self_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_from_proc_self_auxv(); + hwcap = HWCAP.load(Relaxed); + hwcap2 = HWCAP2.load(Relaxed); + } + + (hwcap, hwcap2) +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn linux_execfn() -> &'static CStr { + let mut execfn = EXECFN.load(Relaxed); + + if execfn.is_null() { + init_from_proc_self_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 exe_phdrs() -> (*const c::c_void, usize) { + let mut phdr = PHDR.load(Relaxed); + let mut phnum = PHNUM.load(Relaxed); + + if phdr.is_null() || phnum == 0 { + init_from_proc_self_auxv(); + phdr = PHDR.load(Relaxed); + phnum = PHNUM.load(Relaxed); + } + + (phdr.cast(), phnum) +} + +#[cfg(feature = "runtime")] +#[inline] +pub(in super::super) fn exe_phdrs_slice() -> &'static [Elf_Phdr] { + let (phdr, phnum) = exe_phdrs(); + + // Safety: We assume the `AT_PHDR` and `AT_PHNUM` values provided by the + // kernel form a valid slice. + unsafe { slice::from_raw_parts(phdr.cast(), 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 { + let mut ehdr = SYSINFO_EHDR.load(Relaxed); + + if ehdr.is_null() { + init_from_proc_self_auxv(); + ehdr = SYSINFO_EHDR.load(Relaxed); + } + + ehdr +} + +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 SYSINFO_EHDR: AtomicPtr = AtomicPtr::new(null_mut()); +static PHDR: AtomicPtr = AtomicPtr::new(null_mut()); +static PHNUM: AtomicUsize = AtomicUsize::new(0); +static EXECFN: AtomicPtr = AtomicPtr::new(null_mut()); + +/// On non-Mustang platforms, we read the aux vector from /proc/self/auxv. +#[cfg(not(target_vendor = "mustang"))] +fn init_from_proc_self_auxv() { + // Open "/proc/self/auxv", either because we trust "/proc", or because + // we're running inside QEMU and `proc_self_auxv`'s extra checking foils + // QEMU's emulation so we need to do a plain open to get the right + // auxv records. + let file = crate::fs::openat( + crate::fs::cwd(), + "/proc/self/auxv", + OFlags::empty(), + Mode::empty(), + ) + .unwrap(); + + let _ = init_from_auxv_file(file); +} + +#[cfg(target_vendor = "mustang")] +fn init_from_proc_self_auxv() { + panic!("mustang should have initialized the auxv values"); +} + +/// Process auxv entries from the open file `auxv`. +fn init_from_auxv_file(auxv: OwnedFd) -> Option<()> { + let mut buffer = Vec::::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_auxp(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. +unsafe fn init_from_auxp(mut auxp: *const Elf_auxv_t) -> Option<()> { + let mut pagesz = 0; + let mut clktck = 0; + let mut hwcap = 0; + let mut hwcap2 = 0; + let mut phdr = null_mut(); + let mut phnum = 0; + let mut execfn = null_mut(); + let mut sysinfo_ehdr = null_mut(); + let mut phent = 0; + + loop { + let Elf_auxv_t { a_type, a_val } = read_unaligned(auxp); + + 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_PHDR => phdr = check_raw_pointer::(a_val as *mut _)?.as_ptr(), + AT_PHNUM => phnum = a_val as usize, + AT_PHENT => phent = a_val as usize, + AT_EXECFN => execfn = check_raw_pointer::(a_val as *mut _)?.as_ptr(), + AT_BASE => check_interpreter_base(a_val.cast())?, + AT_SYSINFO_EHDR => sysinfo_ehdr = check_vdso_base(a_val as *mut _)?.as_ptr(), + AT_NULL => break, + _ => (), + } + auxp = auxp.add(1); + } + + assert_eq!(phent, size_of::()); + + // The base and sysinfo_ehdr (if present) matches our platform. Accept + // the aux values. + PAGE_SIZE.store(pagesz, Relaxed); + CLOCK_TICKS_PER_SECOND.store(clktck, Relaxed); + HWCAP.store(hwcap, Relaxed); + HWCAP2.store(hwcap2, Relaxed); + PHDR.store(phdr, Relaxed); + PHNUM.store(phnum, Relaxed); + EXECFN.store(execfn, Relaxed); + SYSINFO_EHDR.store(sysinfo_ehdr, Relaxed); + + Some(()) +} + +/// Check that `base` is a valid pointer to the program interpreter. +/// +/// `base` is some value we got from a `AT_BASE` aux record somewhere, +/// which hopefully holds the value of the program interpreter in memory. Do a +/// series of checks to be as sure as we can that it's safe to use. +unsafe fn check_interpreter_base(base: *const Elf_Ehdr) -> Option<()> { + check_elf_base(base)?; + 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. +unsafe fn check_vdso_base(base: *const Elf_Ehdr) -> Option> { + // In theory, we could check that we're not attempting to parse our own ELF + // image, as an additional check. However, older Linux toolchains don't + // support this, and Rust's `#[linkage = "extern_weak"]` isn't stable yet, + // so just disable this for now. + /* + { + extern "C" { + static __ehdr_start: c::c_void; + } + + let ehdr_start: *const c::c_void = &__ehdr_start; + if base == ehdr_start { + return None; + } + } + */ + + let hdr = check_elf_base(base)?; + + // Check that the ELF is not writable, since that would indicate that this + // isn't the ELF we think it is. Here we're just using `clock_getres` just + // as an arbitrary system call which writes to a buffer and fails with + // `EFAULT` if the buffer is not writable. + { + use super::super::conv::{c_uint, ret}; + if ret(syscall!( + __NR_clock_getres, + c_uint(linux_raw_sys::general::CLOCK_MONOTONIC), + base + )) != Err(crate::io::Errno::FAULT) + { + // We can't gracefully fail here because we would seem to have just + // mutated some unknown memory. + #[cfg(feature = "std")] + { + std::process::abort(); + } + #[cfg(all(not(feature = "std"), feature = "rustc-dep-of-std"))] + { + core::intrinsics::abort(); + } + } + } + + Some(hdr) +} + +/// Check that `base` is a valid pointer to an ELF image. +unsafe fn check_elf_base(base: *const Elf_Ehdr) -> Option> { + // 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 = match check_raw_pointer::(base as *mut _) { + Some(hdr) => hdr, + None => return None, + }; + + 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::() + || hdr.e_phentsize as usize != size_of::() + { + 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::() { + 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 _)) +} + +// ELF ABI + +#[repr(C)] +#[derive(Copy, Clone)] +struct Elf_auxv_t { + 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`. + a_val: *const c_void, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/libc_auxv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/libc_auxv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/libc_auxv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/libc_auxv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,74 @@ +//! Linux auxv support, using libc. +//! +//! # Safety +//! +//! This uses raw pointers to locate and read the kernel-provided auxv array. +#![allow(unsafe_code)] + +#[cfg(any(feature = "param", feature = "runtime"))] +use super::super::c; +use super::super::elf::*; +#[cfg(feature = "param")] +use crate::ffi::CStr; +#[cfg(feature = "runtime")] +use core::slice; + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn page_size() -> usize { + unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn clock_ticks_per_second() -> u64 { + unsafe { libc::getauxval(libc::AT_CLKTCK) as u64 } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn linux_hwcap() -> (usize, usize) { + unsafe { + ( + libc::getauxval(libc::AT_HWCAP) as usize, + libc::getauxval(libc::AT_HWCAP2) as usize, + ) + } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn linux_execfn() -> &'static CStr { + unsafe { + let execfn = libc::getauxval(libc::AT_EXECFN) as *const c::c_char; + CStr::from_ptr(execfn.cast()) + } +} + +#[cfg(feature = "runtime")] +#[inline] +pub(crate) fn exe_phdrs() -> (*const c::c_void, usize) { + unsafe { + ( + libc::getauxval(libc::AT_PHDR) as *const c::c_void, + libc::getauxval(libc::AT_PHNUM) as usize, + ) + } +} + +#[cfg(feature = "runtime")] +#[inline] +pub(in super::super) fn exe_phdrs_slice() -> &'static [Elf_Phdr] { + let (phdr, phnum) = exe_phdrs(); + + // Safety: We assume the `AT_PHDR` and `AT_PHNUM` values provided by the + // kernel form a valid slice. + unsafe { slice::from_raw_parts(phdr.cast(), 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 { + unsafe { libc::getauxval(linux_raw_sys::general::AT_SYSINFO_EHDR.into()) as *const Elf_Ehdr } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,12 @@ +// On Mustang, origin is in control of program startup and can access the +// incoming aux values on the stack. +// +// With "use-libc-auxv" enabled, use libc's `getauxval`. +// +// Otherwise, we read aux values from /proc/self/auxv. +#[cfg_attr(target_vendor = "mustang", path = "mustang_auxv.rs")] +#[cfg_attr( + all(not(target_vendor = "mustang"), feature = "use-libc-auxv"), + path = "libc_auxv.rs" +)] +pub(crate) mod auxv; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mustang_auxv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mustang_auxv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mustang_auxv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/param/mustang_auxv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,159 @@ +//! Linux auxv support, for Mustang. +//! +//! # Safety +//! +//! This uses raw pointers to locate and read the kernel-provided auxv array. +#![allow(unsafe_code)] + +use super::super::c; +use super::super::elf::*; +#[cfg(feature = "param")] +use crate::ffi::CStr; +use core::ffi::c_void; +use core::mem::size_of; +use core::ptr::{null, read}; +#[cfg(feature = "runtime")] +use core::slice; +use linux_raw_sys::general::{ + AT_CLKTCK, AT_EXECFN, AT_HWCAP, AT_HWCAP2, AT_NULL, AT_PAGESZ, AT_PHDR, AT_PHENT, AT_PHNUM, + AT_SYSINFO_EHDR, +}; + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn page_size() -> usize { + // Safety: This is initialized during program startup. + unsafe { PAGE_SIZE } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn clock_ticks_per_second() -> u64 { + // Safety: This is initialized during program startup. + unsafe { CLOCK_TICKS_PER_SECOND as u64 } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn linux_hwcap() -> (usize, usize) { + // Safety: This is initialized during program startup. + unsafe { (HWCAP, HWCAP2) } +} + +#[cfg(feature = "param")] +#[inline] +pub(crate) fn linux_execfn() -> &'static CStr { + // Safety: This is initialized during program startup. And we + // assume it's a valid pointer to a NUL-terminated string. + unsafe { CStr::from_ptr(EXECFN.0.cast()) } +} + +#[cfg(feature = "runtime")] +#[inline] +pub(crate) fn exe_phdrs() -> (*const c_void, usize) { + // Safety: This is initialized during program startup. + unsafe { (PHDR.0.cast(), PHNUM) } +} + +#[cfg(feature = "runtime")] +#[inline] +pub(in super::super) fn exe_phdrs_slice() -> &'static [Elf_Phdr] { + let (phdr, phnum) = exe_phdrs(); + + // Safety: We assume the `AT_PHDR` and `AT_PHNUM` values provided by the + // kernel form a valid slice. + unsafe { slice::from_raw_parts(phdr.cast(), 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 { + // Safety: This is initialized during program startup. + unsafe { SYSINFO_EHDR.0 } +} + +/// A const pointer to `T` that implements [`Sync`]. +#[repr(transparent)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct SyncConstPtr(*const T); +unsafe impl Sync for SyncConstPtr {} + +impl SyncConstPtr { + /// Creates a `SyncConstPointer` from a raw pointer. + /// + /// Behavior is undefined if `ptr` is actually not + /// safe to share across threads. + pub const unsafe fn new(ptr: *const T) -> Self { + Self(ptr) + } +} + +static mut PAGE_SIZE: usize = 0; +static mut CLOCK_TICKS_PER_SECOND: usize = 0; +static mut HWCAP: usize = 0; +static mut HWCAP2: usize = 0; +static mut SYSINFO_EHDR: SyncConstPtr = unsafe { SyncConstPtr::new(null()) }; +static mut PHDR: SyncConstPtr = unsafe { SyncConstPtr::new(null()) }; +static mut PHNUM: usize = 0; +static mut EXECFN: SyncConstPtr = unsafe { SyncConstPtr::new(null()) }; + +/// On mustang, 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 = a_val as usize, + AT_CLKTCK => CLOCK_TICKS_PER_SECOND = a_val as usize, + AT_HWCAP => HWCAP = a_val as usize, + AT_HWCAP2 => HWCAP2 = a_val as usize, + AT_PHDR => PHDR = SyncConstPtr::new(a_val.cast::()), + AT_PHNUM => PHNUM = a_val as usize, + AT_PHENT => assert_eq!(a_val as usize, size_of::()), + AT_EXECFN => EXECFN = SyncConstPtr::new(a_val.cast::()), + AT_SYSINFO_EHDR => SYSINFO_EHDR = SyncConstPtr::new(a_val.cast::()), + AT_NULL => break, + _ => (), + } + auxp = auxp.add(1); + } +} + +// ELF ABI + +#[repr(C)] +#[derive(Copy, Clone)] +struct Elf_auxv_t { + 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`. + a_val: *const c_void, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/cpu_set.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/cpu_set.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/cpu_set.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/cpu_set.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,47 @@ +#![allow(non_snake_case)] + +use super::types::RawCpuSet; +use core::mem::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) { + // TODO: With, Rust 1.50, use `cpuset.bits.fill(0)` instead. + for element in &mut cpuset.bits { + *element = 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(core::mem::size_of::(), cpuset) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4 @@ +pub(crate) mod cpu_set; +pub(crate) mod syscalls; +pub(crate) mod types; +pub(crate) mod wait; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,560 @@ +//! linux_raw syscalls supporting `rustix::process`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::c; +use super::super::conv::{ + by_mut, by_ref, c_int, c_uint, negative_pid, pass_usize, ret, ret_c_int, ret_c_uint, + ret_infallible, ret_usize, ret_usize_infallible, size_of, slice_just_addr, slice_mut, zero, +}; +use super::types::{RawCpuSet, RawUname}; +use crate::fd::BorrowedFd; +use crate::ffi::CStr; +use crate::io; +use crate::process::{ + Cpuid, Gid, MembarrierCommand, MembarrierQuery, Pid, RawNonZeroPid, RawPid, Resource, Rlimit, + Signal, Uid, WaitOptions, WaitStatus, +}; +use core::convert::TryInto; +use core::mem::MaybeUninit; +use core::num::NonZeroU32; +use core::ptr::{null, null_mut}; +use linux_raw_sys::general::{ + __kernel_gid_t, __kernel_pid_t, __kernel_uid_t, membarrier_cmd, membarrier_cmd_flag, rlimit, + rlimit64, PRIO_PGRP, PRIO_PROCESS, PRIO_USER, RLIM64_INFINITY, RLIM_INFINITY, +}; + +#[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)) } +} + +#[inline] +pub(crate) fn getcwd(buf: &mut [u8]) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + unsafe { ret_usize(syscall!(__NR_getcwd, buf_addr_mut, buf_len)) } +} + +#[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) => { + // Safety: The safety of `from_bits_unchecked` is discussed + // [here]. Our "source of truth" is Linux, and here, the + // `query` value is coming from Linux, so we know it only + // contains "source of truth" valid bits. + // + // [here]: https://github.com/bitflags/bitflags/pull/207#issuecomment-671668662 + MembarrierQuery::from_bits_unchecked(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 + )) + } +} + +#[inline] +pub(crate) fn getpid() -> Pid { + unsafe { + let pid: i32 = ret_usize_infallible(syscall_readonly!(__NR_getpid)) as __kernel_pid_t; + debug_assert!(pid > 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pid as u32)) + } +} + +#[inline] +pub(crate) fn getppid() -> Option { + unsafe { + let ppid: i32 = ret_usize_infallible(syscall_readonly!(__NR_getppid)) as __kernel_pid_t; + Pid::from_raw(ppid as u32) + } +} + +#[inline] +pub(crate) fn getpgid(pid: Option) -> io::Result { + unsafe { + let pgid: i32 = + ret_usize(syscall_readonly!(__NR_getpgid, c_uint(Pid::as_raw(pid))))? as __kernel_pid_t; + Ok(Pid::from_raw_nonzero(NonZeroU32::new_unchecked( + pgid as u32, + ))) + } +} + +#[inline] +pub(crate) fn getpgrp() -> Pid { + // Use the `getpgrp` syscall if available. + #[cfg(not(any(target_arch = "aarch64", target_arch = "riscv64")))] + unsafe { + let pgid: i32 = ret_usize_infallible(syscall_readonly!(__NR_getpgrp)) as __kernel_pid_t; + debug_assert!(pgid > 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pgid as u32)) + } + + // Otherwise use `getpgrp` and pass it zero. + #[cfg(any(target_arch = "aarch64", target_arch = "riscv64"))] + unsafe { + let pgid: i32 = + ret_usize_infallible(syscall_readonly!(__NR_getpgid, c_uint(0))) as __kernel_pid_t; + debug_assert!(pgid > 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(pgid as u32)) + } +} + +#[inline] +pub(crate) fn getgid() -> Gid { + #[cfg(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm"))] + unsafe { + let gid: i32 = + (ret_usize_infallible(syscall_readonly!(__NR_getgid32)) as __kernel_gid_t).into(); + Gid::from_raw(gid as u32) + } + #[cfg(not(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm")))] + unsafe { + let gid = ret_usize_infallible(syscall_readonly!(__NR_getgid)) as __kernel_gid_t; + Gid::from_raw(gid as u32) + } +} + +#[inline] +pub(crate) fn getegid() -> Gid { + #[cfg(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm"))] + unsafe { + let gid: i32 = + (ret_usize_infallible(syscall_readonly!(__NR_getegid32)) as __kernel_gid_t).into(); + Gid::from_raw(gid as u32) + } + #[cfg(not(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm")))] + unsafe { + let gid = ret_usize_infallible(syscall_readonly!(__NR_getegid)) as __kernel_gid_t; + Gid::from_raw(gid as u32) + } +} + +#[inline] +pub(crate) fn getuid() -> Uid { + #[cfg(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm"))] + unsafe { + let uid = (ret_usize_infallible(syscall_readonly!(__NR_getuid32)) as __kernel_uid_t).into(); + Uid::from_raw(uid) + } + #[cfg(not(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm")))] + unsafe { + let uid = ret_usize_infallible(syscall_readonly!(__NR_getuid)) as __kernel_uid_t; + Uid::from_raw(uid as u32) + } +} + +#[inline] +pub(crate) fn geteuid() -> Uid { + #[cfg(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm"))] + unsafe { + let uid: i32 = + (ret_usize_infallible(syscall_readonly!(__NR_geteuid32)) as __kernel_uid_t).into(); + Uid::from_raw(uid as u32) + } + #[cfg(not(any(target_arch = "x86", target_arch = "sparc", target_arch = "arm")))] + unsafe { + let uid = ret_usize_infallible(syscall_readonly!(__NR_geteuid)) as __kernel_uid_t; + Uid::from_raw(uid as u32) + } +} + +#[inline] +pub(crate) fn sched_getaffinity(pid: Option, 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_uint(Pid::as_raw(pid)), + size_of::(), + by_mut(&mut cpuset.bits) + ))?; + let bytes = (cpuset as *mut RawCpuSet).cast::(); + 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::() - size); + Ok(()) + } +} + +#[inline] +pub(crate) fn sched_setaffinity(pid: Option, cpuset: &RawCpuSet) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_sched_setaffinity, + c_uint(Pid::as_raw(pid)), + size_of::(), + slice_just_addr(&cpuset.bits) + )) + } +} + +#[inline] +pub(crate) fn sched_yield() { + unsafe { + // See the documentation for [`crate::process::sched_yield`] for why + // errors are ignored. + syscall_readonly!(__NR_sched_yield).decode_void(); + } +} + +#[inline] +pub(crate) fn uname() -> RawUname { + let mut uname = MaybeUninit::::uninit(); + unsafe { + ret(syscall!(__NR_uname, &mut uname)).unwrap(); + uname.assume_init() + } +} + +#[inline] +pub(crate) fn nice(inc: i32) -> io::Result { + let priority = if inc > -40 && inc < 40 { + inc + getpriority_process(None)? + } else { + inc + } + // TODO: With Rust 1.50, use `.clamp` instead of `.min` and `.max`. + //.clamp(-20, 19); + .min(19) + .max(-20); + setpriority_process(None, priority)?; + Ok(priority) +} + +#[inline] +pub(crate) fn getpriority_user(uid: Uid) -> io::Result { + 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) -> io::Result { + unsafe { + Ok(20 + - ret_c_int(syscall_readonly!( + __NR_getpriority, + c_uint(PRIO_PGRP), + c_uint(Pid::as_raw(pgid)) + ))?) + } +} + +#[inline] +pub(crate) fn getpriority_process(pid: Option) -> io::Result { + unsafe { + Ok(20 + - ret_c_int(syscall_readonly!( + __NR_getpriority, + c_uint(PRIO_PROCESS), + c_uint(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, priority: i32) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_setpriority, + c_uint(PRIO_PGRP), + c_uint(Pid::as_raw(pgid)), + c_int(priority) + )) + } +} + +#[inline] +pub(crate) fn setpriority_process(pid: Option, priority: i32) -> io::Result<()> { + unsafe { + ret(syscall_readonly!( + __NR_setpriority, + c_uint(PRIO_PROCESS), + c_uint(Pid::as_raw(pid)), + c_int(priority) + )) + } +} + +#[inline] +pub(crate) fn getrlimit(limit: Resource) -> Rlimit { + let mut result = MaybeUninit::::uninit(); + unsafe { + match ret(syscall!( + __NR_prlimit64, + c_uint(0), + limit, + null::(), + &mut result + )) { + Ok(()) => rlimit_from_linux(result.assume_init()), + Err(err) => { + debug_assert_eq!(err, io::Errno::NOSYS); + getrlimit_old(limit) + } + } + } +} + +/// The old 32-bit-only `getrlimit` syscall, for when we lack the new +/// `prlimit64`. +unsafe fn getrlimit_old(limit: Resource) -> Rlimit { + let mut result = MaybeUninit::::uninit(); + + // On these platforms, `__NR_getrlimit` is called `__NR_ugetrlimit`. + #[cfg(any( + target_arch = "arm", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "x86", + ))] + { + ret_infallible(syscall!(__NR_ugetrlimit, limit, &mut result)); + } + + // On these platforms, it's just `__NR_getrlimit`. + #[cfg(not(any( + target_arch = "arm", + target_arch = "powerpc", + target_arch = "powerpc64", + target_arch = "x86", + )))] + { + ret_infallible(syscall!(__NR_getrlimit, limit, &mut result)); + } + + rlimit_from_linux_old(result.assume_init()) +} + +#[inline] +pub(crate) fn setrlimit(limit: Resource, new: Rlimit) -> io::Result<()> { + unsafe { + let lim = rlimit_to_linux(new.clone()); + match ret(syscall_readonly!( + __NR_prlimit64, + c_uint(0), + limit, + by_ref(&lim), + null_mut::() + )) { + Ok(()) => Ok(()), + Err(io::Errno::NOSYS) => setrlimit_old(limit, new), + Err(err) => Err(err), + } + } +} + +/// The old 32-bit-only `setrlimit` syscall, for when we lack the new +/// `prlimit64`. +unsafe fn setrlimit_old(limit: Resource, new: Rlimit) -> io::Result<()> { + let lim = rlimit_to_linux_old(new)?; + ret(syscall_readonly!(__NR_setrlimit, limit, by_ref(&lim))) +} + +#[inline] +pub(crate) fn prlimit(pid: Option, limit: Resource, new: Rlimit) -> io::Result { + let lim = rlimit_to_linux(new); + let mut result = MaybeUninit::::uninit(); + unsafe { + match ret(syscall!( + __NR_prlimit64, + c_uint(Pid::as_raw(pid)), + limit, + by_ref(&lim), + &mut result + )) { + Ok(()) => Ok(rlimit_from_linux(result.assume_init())), + Err(err) => Err(err), + } + } +} + +/// Convert a Rust [`Rlimit`] to a C `rlimit64`. +#[inline] +fn rlimit_from_linux(lim: rlimit64) -> Rlimit { + let current = if lim.rlim_cur == RLIM64_INFINITY as _ { + None + } else { + Some(lim.rlim_cur) + }; + let maximum = if lim.rlim_max == RLIM64_INFINITY as _ { + None + } else { + Some(lim.rlim_max) + }; + Rlimit { current, maximum } +} + +/// Convert a C `rlimit64` to a Rust `Rlimit`. +#[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 } +} + +/// Like `rlimit_from_linux` but uses Linux's old 32-bit `rlimit`. +#[allow(clippy::useless_conversion)] +fn rlimit_from_linux_old(lim: rlimit) -> Rlimit { + let current = if lim.rlim_cur == RLIM_INFINITY as _ { + None + } else { + Some(lim.rlim_cur.into()) + }; + let maximum = if lim.rlim_max == RLIM_INFINITY as _ { + None + } else { + Some(lim.rlim_max.into()) + }; + Rlimit { current, maximum } +} + +/// Like `rlimit_to_linux` but uses Linux's old 32-bit `rlimit`. +#[allow(clippy::useless_conversion)] +fn rlimit_to_linux_old(lim: Rlimit) -> io::Result { + let rlim_cur = match lim.current { + Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?, + None => RLIM_INFINITY as _, + }; + let rlim_max = match lim.maximum { + Some(r) => r.try_into().map_err(|_e| io::Errno::INVAL)?, + None => RLIM_INFINITY as _, + }; + Ok(rlimit { rlim_cur, rlim_max }) +} + +#[inline] +pub(crate) fn wait(waitopts: WaitOptions) -> io::Result> { + _waitpid(!0, waitopts) +} + +#[inline] +pub(crate) fn waitpid( + pid: Option, + waitopts: WaitOptions, +) -> io::Result> { + _waitpid(Pid::as_raw(pid), waitopts) +} + +#[inline] +pub(crate) fn _waitpid( + pid: RawPid, + waitopts: WaitOptions, +) -> io::Result> { + unsafe { + let mut status = MaybeUninit::::uninit(); + let pid = ret_c_uint(syscall!( + __NR_wait4, + c_int(pid as _), + &mut status, + c_int(waitopts.bits() as _), + zero() + ))?; + Ok(RawNonZeroPid::new(pid).map(|non_zero| { + ( + Pid::from_raw_nonzero(non_zero), + WaitStatus::new(status.assume_init()), + ) + })) + } +} + +#[cfg(feature = "runtime")] +#[inline] +pub(crate) fn exit_group(code: c::c_int) -> ! { + unsafe { syscall_noreturn!(__NR_exit_group, c_int(code)) } +} + +#[inline] +pub(crate) fn setsid() -> io::Result { + unsafe { + let pid = ret_usize(syscall_readonly!(__NR_setsid))?; + debug_assert!(pid > 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked( + pid as u32, + ))) + } +} + +#[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) 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 { + ret_c_int(syscall!(__NR_prctl, c_int(option), arg2, arg3, arg4, arg5)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,246 @@ +use super::super::c; +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::process::membarrier +/// [`membarrier_cpu`]: crate::process::membarrier_cpu +/// [`membarrier_query`]: crate::process::membarrier_query +#[derive(Copy, Clone, Eq, PartialEq, Debug)] +#[repr(u32)] +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 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)] +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, +} + +/// A signal number for use with [`kill_process`] and [`kill_process_group`]. +/// +/// [`kill_process`]: crate::process::kill_process +/// [`kill_process_group`]: crate::process::kill_process_group +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u32)] +pub enum Signal { + /// `SIGHUP` + Hup = linux_raw_sys::general::SIGHUP, + /// `SIGINT` + Int = linux_raw_sys::general::SIGINT, + /// `SIGQUIT` + Quit = linux_raw_sys::general::SIGQUIT, + /// `SIGILL` + Ill = linux_raw_sys::general::SIGILL, + /// `SIGTRAP` + Trap = linux_raw_sys::general::SIGTRAP, + /// `SIGABRT`, aka `SIGIOT` + #[doc(alias = "Iot")] + #[doc(alias = "Abrt")] + Abort = linux_raw_sys::general::SIGABRT, + /// `SIGBUS` + Bus = linux_raw_sys::general::SIGBUS, + /// `SIGFPE` + Fpe = linux_raw_sys::general::SIGFPE, + /// `SIGKILL` + Kill = linux_raw_sys::general::SIGKILL, + /// `SIGUSR1` + Usr1 = linux_raw_sys::general::SIGUSR1, + /// `SIGSEGV` + Segv = linux_raw_sys::general::SIGSEGV, + /// `SIGUSR2` + Usr2 = linux_raw_sys::general::SIGUSR2, + /// `SIGPIPE` + Pipe = linux_raw_sys::general::SIGPIPE, + /// `SIGALRM` + #[doc(alias = "Alrm")] + Alarm = linux_raw_sys::general::SIGALRM, + /// `SIGTERM` + Term = linux_raw_sys::general::SIGTERM, + /// `SIGSTKFLT` + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + Stkflt = linux_raw_sys::general::SIGSTKFLT, + /// `SIGCHLD` + #[doc(alias = "Chld")] + Child = linux_raw_sys::general::SIGCHLD, + /// `SIGCONT` + Cont = linux_raw_sys::general::SIGCONT, + /// `SIGSTOP` + Stop = linux_raw_sys::general::SIGSTOP, + /// `SIGTSTP` + Tstp = linux_raw_sys::general::SIGTSTP, + /// `SIGTTIN` + Ttin = linux_raw_sys::general::SIGTTIN, + /// `SIGTTOU` + Ttou = linux_raw_sys::general::SIGTTOU, + /// `SIGURG` + Urg = linux_raw_sys::general::SIGURG, + /// `SIGXCPU` + Xcpu = linux_raw_sys::general::SIGXCPU, + /// `SIGXFSZ` + Xfsz = linux_raw_sys::general::SIGXFSZ, + /// `SIGVTALRM` + #[doc(alias = "Vtalrm")] + Vtalarm = linux_raw_sys::general::SIGVTALRM, + /// `SIGPROF` + Prof = linux_raw_sys::general::SIGPROF, + /// `SIGWINCH` + Winch = linux_raw_sys::general::SIGWINCH, + /// `SIGIO`, aka `SIGPOLL` + #[doc(alias = "Poll")] + Io = linux_raw_sys::general::SIGIO, + /// `SIGPWR` + #[doc(alias = "Pwr")] + Power = linux_raw_sys::general::SIGPWR, + /// `SIGSYS`, aka `SIGUNUSED` + #[doc(alias = "Unused")] + Sys = linux_raw_sys::general::SIGSYS, + /// `SIGRTMIN` + Rtmin = linux_raw_sys::general::SIGRTMIN, +} + +impl Signal { + /// Convert a raw signal number into a `Signal`, if possible. + pub fn from_raw(sig: i32) -> Option { + match sig as _ { + linux_raw_sys::general::SIGHUP => Some(Self::Hup), + linux_raw_sys::general::SIGINT => Some(Self::Int), + linux_raw_sys::general::SIGQUIT => Some(Self::Quit), + linux_raw_sys::general::SIGILL => Some(Self::Ill), + linux_raw_sys::general::SIGTRAP => Some(Self::Trap), + linux_raw_sys::general::SIGABRT => Some(Self::Abort), + linux_raw_sys::general::SIGBUS => Some(Self::Bus), + linux_raw_sys::general::SIGFPE => Some(Self::Fpe), + linux_raw_sys::general::SIGKILL => Some(Self::Kill), + linux_raw_sys::general::SIGUSR1 => Some(Self::Usr1), + linux_raw_sys::general::SIGSEGV => Some(Self::Segv), + linux_raw_sys::general::SIGUSR2 => Some(Self::Usr2), + linux_raw_sys::general::SIGPIPE => Some(Self::Pipe), + linux_raw_sys::general::SIGALRM => Some(Self::Alarm), + linux_raw_sys::general::SIGTERM => Some(Self::Term), + #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))] + linux_raw_sys::general::SIGSTKFLT => Some(Self::Stkflt), + linux_raw_sys::general::SIGCHLD => Some(Self::Child), + linux_raw_sys::general::SIGCONT => Some(Self::Cont), + linux_raw_sys::general::SIGSTOP => Some(Self::Stop), + linux_raw_sys::general::SIGTSTP => Some(Self::Tstp), + linux_raw_sys::general::SIGTTIN => Some(Self::Ttin), + linux_raw_sys::general::SIGTTOU => Some(Self::Ttou), + linux_raw_sys::general::SIGURG => Some(Self::Urg), + linux_raw_sys::general::SIGXCPU => Some(Self::Xcpu), + linux_raw_sys::general::SIGXFSZ => Some(Self::Xfsz), + linux_raw_sys::general::SIGVTALRM => Some(Self::Vtalarm), + linux_raw_sys::general::SIGPROF => Some(Self::Prof), + linux_raw_sys::general::SIGWINCH => Some(Self::Winch), + linux_raw_sys::general::SIGIO => Some(Self::Io), + linux_raw_sys::general::SIGPWR => Some(Self::Power), + linux_raw_sys::general::SIGSYS => Some(Self::Sys), + linux_raw_sys::general::SIGRTMIN => Some(Self::Rtmin), + _ => None, + } + } +} + +/// `EXIT_SUCCESS` +pub const EXIT_SUCCESS: c::c_int = 0; +/// `EXIT_FAILURE` +pub const EXIT_FAILURE: c::c_int = 1; +/// The status value of a child terminated with `SIGABRT`. +pub const EXIT_SIGNALED_SIGABRT: c::c_int = 128 + linux_raw_sys::general::SIGABRT as i32; + +/// A process identifier as a raw integer. +pub type RawPid = u32; +/// A non-zero process identifier as a raw non-zero integer. +pub type RawNonZeroPid = core::num::NonZeroU32; +/// A group identifier as a raw integer. +pub type RawGid = u32; +/// A user identifier as a raw integer. +pub type RawUid = u32; +/// A CPU identifier as a raw integer. +pub type RawCpuid = u32; + +pub(crate) type RawUname = linux_raw_sys::general::new_utsname; + +#[repr(C)] +#[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::(); diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/wait.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/wait.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/wait.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/process/wait.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,39 @@ +// The functions replacing the C macros use the same names as in libc. +#![allow(non_snake_case)] + +pub(crate) use linux_raw_sys::general::{WCONTINUED, WNOHANG, WUNTRACED}; + +#[inline] +pub(crate) fn WIFSTOPPED(status: u32) -> bool { + (status & 0xff) == 0x7f +} + +#[inline] +pub(crate) fn WSTOPSIG(status: u32) -> u32 { + (status >> 8) & 0xff +} + +#[inline] +pub(crate) fn WIFCONTINUED(status: u32) -> bool { + status == 0xffff +} + +#[inline] +pub(crate) fn WIFSIGNALED(status: u32) -> bool { + ((status & 0x7f) + 1) as i8 >= 2 +} + +#[inline] +pub(crate) fn WTERMSIG(status: u32) -> u32 { + status & 0x7f +} + +#[inline] +pub(crate) fn WIFEXITED(status: u32) -> bool { + (status & 0x7f) == 0 +} + +#[inline] +pub(crate) fn WEXITSTATUS(status: u32) -> u32 { + (status >> 8) & 0xff +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,17 @@ +//! linux_raw syscalls supporting `rustix::rand`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::conv::{ret_usize, slice_mut}; +use crate::io; +use crate::rand::GetRandomFlags; + +#[inline] +pub(crate) fn getrandom(buf: &mut [u8], flags: GetRandomFlags) -> io::Result { + let (buf_addr_mut, buf_len) = slice_mut(buf); + unsafe { ret_usize(syscall!(__NR_getrandom, buf_addr_mut, buf_len, flags)) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/rand/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,15 @@ +use bitflags::bitflags; + +bitflags! { + /// `GRND_*` flags for use with [`getrandom`]. + /// + /// [`getrandom`]: crate::rand::getrandom + 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; + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/reg.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/reg.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/reg.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/reg.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,258 @@ +//! Encapsulation for system call arguments and return values. +//! +//! The inline-asm and outline-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; + +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)] +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(target_arch = "mips")] +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(target_arch = "mips")] +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 { + raw: *mut Opaque, + _phantom: PhantomData, +} + +impl RetReg { + #[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: core::ops::Range) -> bool { + range.contains(&(self.raw as isize)) + } +} + +impl FromAsm for RetReg { + #[inline] + unsafe fn from_asm(raw: *mut Opaque) -> Self { + Self { + raw, + _phantom: PhantomData, + } + } +} + +#[repr(transparent)] +pub(super) struct SyscallNumber<'a> { + 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 Sealed for super::RetReg {} + 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(target_arch = "mips")] + impl Sealed for super::A6 {} + #[cfg(target_arch = "x86")] + impl Sealed for super::SocketArg {} + impl Sealed for super::R0 {} +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod tls; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,107 @@ +//! linux_raw syscalls supporting `rustix::runtime`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::c; +#[cfg(target_arch = "x86")] +use super::super::conv::by_mut; +use super::super::conv::{c_int, c_uint, ret, ret_c_uint, ret_error, ret_usize_infallible, zero}; +#[cfg(feature = "fs")] +use crate::fd::BorrowedFd; +use crate::ffi::CStr; +#[cfg(feature = "fs")] +use crate::fs::AtFlags; +use crate::io; +use crate::process::{Pid, RawNonZeroPid}; +use linux_raw_sys::general::{__kernel_pid_t, PR_SET_NAME, SIGCHLD}; +#[cfg(target_arch = "x86_64")] +use {super::super::conv::ret_infallible, linux_raw_sys::general::ARCH_SET_FS}; + +#[inline] +pub(crate) unsafe fn fork() -> io::Result> { + let pid = ret_c_uint(syscall_readonly!( + __NR_clone, + c_uint(SIGCHLD), + zero(), + zero(), + zero(), + zero() + ))?; + Ok(Pid::from_raw(pid)) +} + +#[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 { + #[cfg(target_arch = "x86")] + use super::super::tls::UserDesc; + use super::*; + + #[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 + )) + } + + #[inline] + pub(crate) unsafe fn set_tid_address(data: *mut c::c_void) -> Pid { + let tid: i32 = + ret_usize_infallible(syscall_readonly!(__NR_set_tid_address, data)) as __kernel_pid_t; + debug_assert_ne!(tid, 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(tid as u32)) + } + + #[inline] + pub(crate) unsafe fn set_thread_name(name: &CStr) -> io::Result<()> { + ret(syscall_readonly!(__NR_prctl, c_uint(PR_SET_NAME), name)) + } + + #[inline] + pub(crate) fn exit_thread(code: c::c_int) -> ! { + unsafe { syscall_noreturn!(__NR_exit, c_int(code)) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/tls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/tls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/tls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/runtime/tls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,57 @@ +#![allow(unsafe_code)] + +use super::super::c; +use super::super::elf::*; +use super::super::param::auxv::exe_phdrs_slice; +use core::ptr::null; + +/// 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; + +pub(crate) fn startup_tls_info() -> StartupTlsInfo { + let mut base = null(); + let mut tls_phdr = null(); + let mut stack_size = 0; + + let phdrs = exe_phdrs_slice(); + + // Safety: We assume the phdr array pointer and length the kernel provided + // to the process describe a valid phdr array. + unsafe { + for phdr in phdrs { + match phdr.p_type { + PT_PHDR => base = phdrs.as_ptr().cast::().offset(-(phdr.p_vaddr as isize)), + PT_TLS => tls_phdr = phdr, + PT_GNU_STACK => stack_size = phdr.p_memsz, + _ => {} + } + } + + StartupTlsInfo { + addr: base.cast::().add((*tls_phdr).p_vaddr).cast(), + mem_size: (*tls_phdr).p_memsz, + file_size: (*tls_phdr).p_filesz, + align: (*tls_phdr).p_align, + stack_size, + } + } +} + +/// The values returned from [`startup_tls_info`]. +/// +/// [`startup_tls_info`]: crate::runtime::startup_tls_info +pub struct StartupTlsInfo { + /// The base address of the TLS segment. + pub addr: *const c::c_void, + /// The size of the memory region. + pub mem_size: usize, + /// The size beyond which all memory is zero-initialized. + pub file_size: usize, + /// The required alignment for the TLS segment. + pub align: usize, + /// The requested minimum size for stacks. + pub stack_size: usize, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2 @@ +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,252 @@ +//! linux_raw syscalls supporting `rustix::termios`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::conv::{by_ref, c_uint, ret}; +use crate::fd::BorrowedFd; +use crate::io; +use crate::process::{Pid, RawNonZeroPid}; +use crate::termios::{ + Action, OptionalActions, QueueSelector, Termios, Winsize, BRKINT, CBAUD, CS8, CSIZE, ECHO, + ECHONL, ICANON, ICRNL, IEXTEN, IGNBRK, IGNCR, INLCR, ISIG, ISTRIP, IXON, OPOST, PARENB, PARMRK, + VMIN, VTIME, +}; +#[cfg(feature = "procfs")] +use crate::{ffi::CStr, fs::FileType, path::DecInt}; +use core::mem::MaybeUninit; +use linux_raw_sys::general::__kernel_pid_t; +use linux_raw_sys::ioctl::{ + TCFLSH, TCGETS, TCSBRK, TCSETS, TCXONC, TIOCGPGRP, TIOCGSID, TIOCGWINSZ, TIOCSPGRP, TIOCSWINSZ, +}; + +#[inline] +pub(crate) fn tcgetwinsize(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_ioctl, fd, c_uint(TIOCGWINSZ), &mut result))?; + Ok(result.assume_init()) + } +} + +#[inline] +pub(crate) fn tcgetattr(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut result = MaybeUninit::::uninit(); + ret(syscall!(__NR_ioctl, fd, c_uint(TCGETS), &mut result))?; + Ok(result.assume_init()) + } +} + +#[inline] +pub(crate) fn tcgetpgrp(fd: BorrowedFd<'_>) -> io::Result { + unsafe { + let mut result = MaybeUninit::<__kernel_pid_t>::uninit(); + ret(syscall!(__NR_ioctl, fd, c_uint(TIOCGPGRP), &mut result))?; + let pid = result.assume_init(); + debug_assert!(pid > 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked( + pid as u32, + ))) + } +} + +#[inline] +pub(crate) fn tcsetattr( + fd: BorrowedFd, + optional_actions: OptionalActions, + termios: &Termios, +) -> io::Result<()> { + // Translate from `optional_actions` into an ioctl request code. On MIPS, + // `optional_actions` already has `TCGETS` added to it. + let request = if cfg!(any(target_arch = "mips", target_arch = "mips64")) { + optional_actions as u32 + } else { + TCSETS + optional_actions as u32 + }; + unsafe { + ret(syscall_readonly!( + __NR_ioctl, + fd, + c_uint(request as u32), + by_ref(termios) + )) + } +} + +#[inline] +pub(crate) fn tcsendbreak(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_ioctl, fd, c_uint(TCSBRK), c_uint(0))) } +} + +#[inline] +pub(crate) fn tcdrain(fd: BorrowedFd) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_ioctl, fd, c_uint(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(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(TCXONC), + c_uint(action as u32) + )) + } +} + +#[inline] +pub(crate) fn tcgetsid(fd: BorrowedFd) -> io::Result { + unsafe { + let mut result = MaybeUninit::<__kernel_pid_t>::uninit(); + ret(syscall!(__NR_ioctl, fd, c_uint(TIOCGSID), &mut result))?; + let pid = result.assume_init(); + debug_assert!(pid > 0); + Ok(Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked( + pid as u32, + ))) + } +} + +#[inline] +pub(crate) fn tcsetwinsize(fd: BorrowedFd, winsize: Winsize) -> io::Result<()> { + unsafe { + ret(syscall!( + __NR_ioctl, + fd, + c_uint(TIOCSWINSZ), + by_ref(&winsize) + )) + } +} + +#[inline] +pub(crate) fn tcsetpgrp(fd: BorrowedFd<'_>, pid: Pid) -> io::Result<()> { + unsafe { ret(syscall!(__NR_ioctl, fd, c_uint(TIOCSPGRP), pid)) } +} + +#[inline] +#[must_use] +#[allow(clippy::missing_const_for_fn)] +pub(crate) fn cfgetospeed(termios: &Termios) -> u32 { + termios.c_cflag & CBAUD +} + +#[inline] +#[must_use] +#[allow(clippy::missing_const_for_fn)] +pub(crate) fn cfgetispeed(termios: &Termios) -> u32 { + termios.c_cflag & CBAUD +} + +#[inline] +pub(crate) fn cfmakeraw(termios: &mut Termios) { + // From the Linux [`cfmakeraw` man page]: + // + // [`cfmakeraw` man page]: https://man7.org/linux/man-pages/man3/cfmakeraw.3.html + termios.c_iflag &= !(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); + termios.c_oflag &= !OPOST; + termios.c_lflag &= !(ECHO | ECHONL | ICANON | ISIG | IEXTEN); + termios.c_cflag &= !(CSIZE | PARENB); + termios.c_cflag |= CS8; + + // Musl and glibc also do these: + termios.c_cc[VMIN] = 1; + termios.c_cc[VTIME] = 0; +} + +#[inline] +pub(crate) fn cfsetospeed(termios: &mut Termios, speed: u32) -> io::Result<()> { + if (speed & !CBAUD) != 0 { + return Err(io::Errno::INVAL); + } + termios.c_cflag &= !CBAUD; + termios.c_cflag |= speed; + Ok(()) +} + +#[inline] +pub(crate) fn cfsetispeed(termios: &mut Termios, speed: u32) -> io::Result<()> { + if speed == 0 { + return Ok(()); + } + if (speed & !CBAUD) != 0 { + return Err(io::Errno::INVAL); + } + termios.c_cflag &= !CBAUD; + termios.c_cflag |= speed; + Ok(()) +} + +#[inline] +pub(crate) fn cfsetspeed(termios: &mut Termios, speed: u32) -> io::Result<()> { + if (speed & !CBAUD) != 0 { + return Err(io::Errno::INVAL); + } + termios.c_cflag &= !CBAUD; + termios.c_cflag |= speed; + Ok(()) +} + +#[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 = "procfs")] +pub(crate) fn ttyname(fd: BorrowedFd<'_>, buf: &mut [u8]) -> io::Result { + let fd_stat = super::super::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(crate::io::Errno::NOTTY); + } + + // Check that `fd` is really a tty. + tcgetwinsize(fd)?; + + // Get a fd to '/proc/self/fd'. + let proc_self_fd = io::proc_self_fd()?; + + // Gather the ttyname by reading the 'fd' file inside 'proc_self_fd'. + let r = + super::super::fs::syscalls::readlinkat(proc_self_fd, DecInt::from_fd(fd).as_c_str(), 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 r == buf.len() { + return Err(io::Errno::RANGE); + } + buf[r] = b'\0'; + + // Check that the path we read refers to the same file as `fd`. + let path = CStr::from_bytes_with_nul(&buf[..=r]).unwrap(); + + let path_stat = super::super::fs::syscalls::stat(path)?; + if path_stat.st_dev != fd_stat.st_dev || path_stat.st_ino != fd_stat.st_ino { + return Err(crate::io::Errno::NODEV); + } + + Ok(r) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/termios/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,460 @@ +use super::super::c; + +/// `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. + Now = linux_raw_sys::general::TCSANOW, + + /// `TCSADRAIN`—Make the change after all output has been transmitted. + Drain = linux_raw_sys::general::TCSADRAIN, + + /// `TCSAFLUSH`—Discard any pending input and then make the change + /// after all output has been transmitted. + Flush = linux_raw_sys::general::TCSAFLUSH, +} + +/// `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. + IFlush = linux_raw_sys::general::TCIFLUSH, + + /// `TCOFLUSH`—Flush data written but not transmitted. + OFlush = linux_raw_sys::general::TCOFLUSH, + + /// `TCIOFLUSH`—`IFlush` and `OFlush` combined. + IOFlush = linux_raw_sys::general::TCIOFLUSH, +} + +/// `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. + OOff = linux_raw_sys::general::TCOOFF, + + /// `TCOON`—Restart suspended output. + OOn = linux_raw_sys::general::TCOON, + + /// `TCIOFF`—Transmits a STOP byte. + IOff = linux_raw_sys::general::TCIOFF, + + /// `TCION`—Transmits a START byte. + IOn = linux_raw_sys::general::TCION, +} + +/// `struct termios` for use with [`tcgetattr`]. +/// +/// [`tcgetattr`]: crate::termios::tcgetattr +pub type Termios = linux_raw_sys::general::termios; + +/// `struct winsize` for use with [`tcgetwinsize`]. +/// +/// [`tcgetwinsize`]: crate::termios::tcgetwinsize +pub type Winsize = linux_raw_sys::general::winsize; + +/// `tcflag_t`—A type for the flags fields of [`Termios`]. +pub type Tcflag = linux_raw_sys::general::tcflag_t; + +/// `speed_t`—A return type for [`cfsetspeed`] and similar. +/// +/// [`cfsetspeed`]: crate::termios::cfsetspeed +pub type Speed = linux_raw_sys::general::speed_t; + +/// `VINTR` +pub const VINTR: usize = linux_raw_sys::general::VINTR as usize; + +/// `VQUIT` +pub const VQUIT: usize = linux_raw_sys::general::VQUIT as usize; + +/// `VERASE` +pub const VERASE: usize = linux_raw_sys::general::VERASE as usize; + +/// `VKILL` +pub const VKILL: usize = linux_raw_sys::general::VKILL as usize; + +/// `VEOF` +pub const VEOF: usize = linux_raw_sys::general::VEOF as usize; + +/// `VTIME` +pub const VTIME: usize = linux_raw_sys::general::VTIME as usize; + +/// `VMIN` +pub const VMIN: usize = linux_raw_sys::general::VMIN as usize; + +/// `VSWTC` +pub const VSWTC: usize = linux_raw_sys::general::VSWTC as usize; + +/// `VSTART` +pub const VSTART: usize = linux_raw_sys::general::VSTART as usize; + +/// `VSTOP` +pub const VSTOP: usize = linux_raw_sys::general::VSTOP as usize; + +/// `VSUSP` +pub const VSUSP: usize = linux_raw_sys::general::VSUSP as usize; + +/// `VEOL` +pub const VEOL: usize = linux_raw_sys::general::VEOL as usize; + +/// `VREPRINT` +pub const VREPRINT: usize = linux_raw_sys::general::VREPRINT as usize; + +/// `VDISCARD` +pub const VDISCARD: usize = linux_raw_sys::general::VDISCARD as usize; + +/// `VWERASE` +pub const VWERASE: usize = linux_raw_sys::general::VWERASE as usize; + +/// `VLNEXT` +pub const VLNEXT: usize = linux_raw_sys::general::VLNEXT as usize; + +/// `VEOL2` +pub const VEOL2: usize = linux_raw_sys::general::VEOL2 as usize; + +/// `IGNBRK` +pub const IGNBRK: c::c_uint = linux_raw_sys::general::IGNBRK; + +/// `BRKINT` +pub const BRKINT: c::c_uint = linux_raw_sys::general::BRKINT; + +/// `IGNPAR` +pub const IGNPAR: c::c_uint = linux_raw_sys::general::IGNPAR; + +/// `PARMRK` +pub const PARMRK: c::c_uint = linux_raw_sys::general::PARMRK; + +/// `INPCK` +pub const INPCK: c::c_uint = linux_raw_sys::general::INPCK; + +/// `ISTRIP` +pub const ISTRIP: c::c_uint = linux_raw_sys::general::ISTRIP; + +/// `INLCR` +pub const INLCR: c::c_uint = linux_raw_sys::general::INLCR; + +/// `IGNCR` +pub const IGNCR: c::c_uint = linux_raw_sys::general::IGNCR; + +/// `ICRNL` +pub const ICRNL: c::c_uint = linux_raw_sys::general::ICRNL; + +/// `IUCLC` +pub const IUCLC: c::c_uint = linux_raw_sys::general::IUCLC; + +/// `IXON` +pub const IXON: c::c_uint = linux_raw_sys::general::IXON; + +/// `IXANY` +pub const IXANY: c::c_uint = linux_raw_sys::general::IXANY; + +/// `IXOFF` +pub const IXOFF: c::c_uint = linux_raw_sys::general::IXOFF; + +/// `IMAXBEL` +pub const IMAXBEL: c::c_uint = linux_raw_sys::general::IMAXBEL; + +/// `IUTF8` +pub const IUTF8: c::c_uint = linux_raw_sys::general::IUTF8; + +/// `OPOST` +pub const OPOST: c::c_uint = linux_raw_sys::general::OPOST; + +/// `OLCUC` +pub const OLCUC: c::c_uint = linux_raw_sys::general::OLCUC; + +/// `ONLCR` +pub const ONLCR: c::c_uint = linux_raw_sys::general::ONLCR; + +/// `OCRNL` +pub const OCRNL: c::c_uint = linux_raw_sys::general::OCRNL; + +/// `ONOCR` +pub const ONOCR: c::c_uint = linux_raw_sys::general::ONOCR; + +/// `ONLRET` +pub const ONLRET: c::c_uint = linux_raw_sys::general::ONLRET; + +/// `OFILL` +pub const OFILL: c::c_uint = linux_raw_sys::general::OFILL; + +/// `OFDEL` +pub const OFDEL: c::c_uint = linux_raw_sys::general::OFDEL; + +/// `NLDLY` +pub const NLDLY: c::c_uint = linux_raw_sys::general::NLDLY; + +/// `NL0` +pub const NL0: c::c_uint = linux_raw_sys::general::NL0; + +/// `NL1` +pub const NL1: c::c_uint = linux_raw_sys::general::NL1; + +/// `CRDLY` +pub const CRDLY: c::c_uint = linux_raw_sys::general::CRDLY; + +/// `CR0` +pub const CR0: c::c_uint = linux_raw_sys::general::CR0; + +/// `CR1` +pub const CR1: c::c_uint = linux_raw_sys::general::CR1; + +/// `CR2` +pub const CR2: c::c_uint = linux_raw_sys::general::CR2; + +/// `CR3` +pub const CR3: c::c_uint = linux_raw_sys::general::CR3; + +/// `TABDLY` +pub const TABDLY: c::c_uint = linux_raw_sys::general::TABDLY; + +/// `TAB0` +pub const TAB0: c::c_uint = linux_raw_sys::general::TAB0; + +/// `TAB1` +pub const TAB1: c::c_uint = linux_raw_sys::general::TAB1; + +/// `TAB2` +pub const TAB2: c::c_uint = linux_raw_sys::general::TAB2; + +/// `TAB3` +pub const TAB3: c::c_uint = linux_raw_sys::general::TAB3; + +/// `BSDLY` +pub const BSDLY: c::c_uint = linux_raw_sys::general::BSDLY; + +/// `BS0` +pub const BS0: c::c_uint = linux_raw_sys::general::BS0; + +/// `BS1` +pub const BS1: c::c_uint = linux_raw_sys::general::BS1; + +/// `FFDLY` +pub const FFDLY: c::c_uint = linux_raw_sys::general::FFDLY; + +/// `FF0` +pub const FF0: c::c_uint = linux_raw_sys::general::FF0; + +/// `FF1` +pub const FF1: c::c_uint = linux_raw_sys::general::FF1; + +/// `VTDLY` +pub const VTDLY: c::c_uint = linux_raw_sys::general::VTDLY; + +/// `VT0` +pub const VT0: c::c_uint = linux_raw_sys::general::VT0; + +/// `VT1` +pub const VT1: c::c_uint = linux_raw_sys::general::VT1; + +/// `B0` +pub const B0: Speed = linux_raw_sys::general::B0; + +/// `B50` +pub const B50: Speed = linux_raw_sys::general::B50; + +/// `B75` +pub const B75: Speed = linux_raw_sys::general::B75; + +/// `B110` +pub const B110: Speed = linux_raw_sys::general::B110; + +/// `B134` +pub const B134: Speed = linux_raw_sys::general::B134; + +/// `B150` +pub const B150: Speed = linux_raw_sys::general::B150; + +/// `B200` +pub const B200: Speed = linux_raw_sys::general::B200; + +/// `B300` +pub const B300: Speed = linux_raw_sys::general::B300; + +/// `B600` +pub const B600: Speed = linux_raw_sys::general::B600; + +/// `B1200` +pub const B1200: Speed = linux_raw_sys::general::B1200; + +/// `B1800` +pub const B1800: Speed = linux_raw_sys::general::B1800; + +/// `B2400` +pub const B2400: Speed = linux_raw_sys::general::B2400; + +/// `B4800` +pub const B4800: Speed = linux_raw_sys::general::B4800; + +/// `B9600` +pub const B9600: Speed = linux_raw_sys::general::B9600; + +/// `B19200` +pub const B19200: Speed = linux_raw_sys::general::B19200; + +/// `B38400` +pub const B38400: Speed = linux_raw_sys::general::B38400; + +/// `B57600` +pub const B57600: Speed = linux_raw_sys::general::B57600; + +/// `B115200` +pub const B115200: Speed = linux_raw_sys::general::B115200; + +/// `B230400` +pub const B230400: Speed = linux_raw_sys::general::B230400; + +/// `B460800` +pub const B460800: Speed = linux_raw_sys::general::B460800; + +/// `B500000` +pub const B500000: Speed = linux_raw_sys::general::B500000; + +/// `B576000` +pub const B576000: Speed = linux_raw_sys::general::B576000; + +/// `B921600` +pub const B921600: Speed = linux_raw_sys::general::B921600; + +/// `B1000000` +pub const B1000000: Speed = linux_raw_sys::general::B1000000; + +/// `B1152000` +pub const B1152000: Speed = linux_raw_sys::general::B1152000; + +/// `B1500000` +pub const B1500000: Speed = linux_raw_sys::general::B1500000; + +/// `B2000000` +pub const B2000000: Speed = linux_raw_sys::general::B2000000; + +/// `B2500000` +#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] +pub const B2500000: Speed = linux_raw_sys::general::B2500000; + +/// `B3000000` +#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] +pub const B3000000: Speed = linux_raw_sys::general::B3000000; + +/// `B3500000` +#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] +pub const B3500000: Speed = linux_raw_sys::general::B3500000; + +/// `B4000000` +#[cfg(not(any(target_arch = "sparc", target_arch = "sparc64")))] +pub const B4000000: Speed = linux_raw_sys::general::B4000000; + +/// `CSIZE` +pub const CSIZE: c::c_uint = linux_raw_sys::general::CSIZE; + +/// `CS5` +pub const CS5: c::c_uint = linux_raw_sys::general::CS5; + +/// `CS6` +pub const CS6: c::c_uint = linux_raw_sys::general::CS6; + +/// `CS7` +pub const CS7: c::c_uint = linux_raw_sys::general::CS7; + +/// `CS8` +pub const CS8: c::c_uint = linux_raw_sys::general::CS8; + +/// `CSTOPB` +pub const CSTOPB: c::c_uint = linux_raw_sys::general::CSTOPB; + +/// `CREAD` +pub const CREAD: c::c_uint = linux_raw_sys::general::CREAD; + +/// `PARENB` +pub const PARENB: c::c_uint = linux_raw_sys::general::PARENB; + +/// `PARODD` +pub const PARODD: c::c_uint = linux_raw_sys::general::PARODD; + +/// `HUPCL` +pub const HUPCL: c::c_uint = linux_raw_sys::general::HUPCL; + +/// `CLOCAL` +pub const CLOCAL: c::c_uint = linux_raw_sys::general::CLOCAL; + +/// `ISIG` +pub const ISIG: c::c_uint = linux_raw_sys::general::ISIG; + +/// `ICANON`—A flag for the `c_lflag` field of [`Termios`] indicating +/// canonical mode. +pub const ICANON: Tcflag = linux_raw_sys::general::ICANON; + +/// `ECHO` +pub const ECHO: c::c_uint = linux_raw_sys::general::ECHO; + +/// `ECHOE` +pub const ECHOE: c::c_uint = linux_raw_sys::general::ECHOE; + +/// `ECHOK` +pub const ECHOK: c::c_uint = linux_raw_sys::general::ECHOK; + +/// `ECHONL` +pub const ECHONL: c::c_uint = linux_raw_sys::general::ECHONL; + +/// `NOFLSH` +pub const NOFLSH: c::c_uint = linux_raw_sys::general::NOFLSH; + +/// `TOSTOP` +pub const TOSTOP: c::c_uint = linux_raw_sys::general::TOSTOP; + +/// `IEXTEN` +pub const IEXTEN: c::c_uint = linux_raw_sys::general::IEXTEN; + +/// `EXTA` +pub const EXTA: c::c_uint = linux_raw_sys::general::EXTA; + +/// `EXTB` +pub const EXTB: c::c_uint = linux_raw_sys::general::EXTB; + +/// `CBAUD` +pub const CBAUD: c::c_uint = linux_raw_sys::general::CBAUD; + +/// `CBAUDEX` +pub const CBAUDEX: c::c_uint = linux_raw_sys::general::CBAUDEX; + +/// `CIBAUD` +pub const CIBAUD: c::c_uint = linux_raw_sys::general::CIBAUD; + +/// `CMSPAR` +pub const CMSPAR: c::c_uint = linux_raw_sys::general::CMSPAR; + +/// `CRTSCTS` +pub const CRTSCTS: c::c_uint = linux_raw_sys::general::CRTSCTS; + +/// `XCASE` +pub const XCASE: c::c_uint = linux_raw_sys::general::XCASE; + +/// `ECHOCTL` +pub const ECHOCTL: c::c_uint = linux_raw_sys::general::ECHOCTL; + +/// `ECHOPRT` +pub const ECHOPRT: c::c_uint = linux_raw_sys::general::ECHOPRT; + +/// `ECHOKE` +pub const ECHOKE: c::c_uint = linux_raw_sys::general::ECHOKE; + +/// `FLUSHO` +pub const FLUSHO: c::c_uint = linux_raw_sys::general::FLUSHO; + +/// `PENDIN` +pub const PENDIN: c::c_uint = linux_raw_sys::general::PENDIN; + +/// `EXTPROC` +pub const EXTPROC: c::c_uint = linux_raw_sys::general::EXTPROC; + +/// `XTABS` +pub const XTABS: c::c_uint = linux_raw_sys::general::XTABS; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/futex.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/futex.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/futex.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/futex.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,39 @@ +bitflags::bitflags! { + /// Flags for use with [`futex`]. + /// + /// [`futex`]: crate::thread::futex + pub struct FutexFlags: 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; + } +} + +/// Operations for use with [`futex`]. +/// +/// [`futex`]: crate::thread::futex +#[derive(Debug, Copy, Clone, Eq, PartialEq)] +#[repr(u32)] +pub enum FutexOperation { + /// `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, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4 @@ +mod futex; +pub(crate) mod syscalls; + +pub use futex::{FutexFlags, FutexOperation}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/thread/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,296 @@ +//! linux_raw syscalls supporting `rustix::thread`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +use super::super::c; +use super::super::conv::{ + by_ref, c_int, c_uint, ret, ret_c_int, ret_usize, ret_usize_infallible, zero, +}; +use crate::fd::BorrowedFd; +use crate::io; +use crate::process::{Pid, RawNonZeroPid}; +use crate::thread::{ClockId, FutexFlags, FutexOperation, NanosleepRelativeResult, Timespec}; +use core::mem::MaybeUninit; +use linux_raw_sys::general::{__kernel_pid_t, __kernel_timespec, TIMER_ABSTIME}; +#[cfg(target_pointer_width = "32")] +use { + core::convert::TryInto, core::ptr, linux_raw_sys::general::timespec as __kernel_old_timespec, +}; + +#[inline] +pub(crate) fn clock_nanosleep_relative( + id: ClockId, + req: &__kernel_timespec, +) -> NanosleepRelativeResult { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut rem = MaybeUninit::<__kernel_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 `rustix_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::<__kernel_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: &__kernel_timespec, + rem: &mut MaybeUninit<__kernel_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(); + // TODO: With Rust 1.55, we can use MaybeUninit::write here. + ptr::write( + rem.as_mut_ptr(), + __kernel_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: &__kernel_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 `rustix_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: &__kernel_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: &__kernel_timespec) -> NanosleepRelativeResult { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut rem = MaybeUninit::<__kernel_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 `rustix_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::<__kernel_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: &__kernel_timespec, + rem: &mut MaybeUninit<__kernel_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(); + // TODO: With Rust 1.55, we can use MaybeUninit::write here. + ptr::write( + rem.as_mut_ptr(), + __kernel_timespec { + tv_sec: old_rem.tv_sec.into(), + tv_nsec: old_rem.tv_nsec.into(), + }, + ); + Ok(()) +} + +#[inline] +pub(crate) fn gettid() -> Pid { + unsafe { + let tid: i32 = ret_usize_infallible(syscall_readonly!(__NR_gettid)) as __kernel_pid_t; + debug_assert_ne!(tid, 0); + Pid::from_raw_nonzero(RawNonZeroPid::new_unchecked(tid as u32)) + } +} + +// TODO: This could be de-multiplexed. +#[inline] +pub(crate) unsafe fn futex( + uaddr: *mut u32, + op: FutexOperation, + flags: FutexFlags, + val: u32, + utime: *const Timespec, + uaddr2: *mut u32, + val3: u32, +) -> io::Result { + #[cfg(target_pointer_width = "32")] + { + ret_usize(syscall!( + __NR_futex_time64, + uaddr, + (op, flags), + c_uint(val), + utime, + uaddr2, + c_uint(val3) + )) + .or_else(|err| { + // See the comments in `rustix_clock_gettime_via_syscall` about + // emulation. + if err == io::Errno::NOSYS { + futex_old(uaddr, op, flags, val, utime, uaddr2, val3) + } else { + Err(err) + } + }) + } + #[cfg(target_pointer_width = "64")] + ret_usize(syscall!( + __NR_futex, + uaddr, + (op, flags), + c_uint(val), + utime, + uaddr2, + c_uint(val3) + )) +} + +#[cfg(target_pointer_width = "32")] +unsafe fn futex_old( + uaddr: *mut u32, + op: FutexOperation, + flags: FutexFlags, + val: u32, + utime: *const Timespec, + uaddr2: *mut u32, + val3: u32, +) -> io::Result { + let old_utime = __kernel_old_timespec { + tv_sec: (*utime).tv_sec.try_into().map_err(|_| io::Errno::INVAL)?, + tv_nsec: (*utime).tv_nsec.try_into().map_err(|_| io::Errno::INVAL)?, + }; + ret_usize(syscall!( + __NR_futex, + uaddr, + (op, flags), + c_uint(val), + by_ref(&old_utime), + uaddr2, + c_uint(val3) + )) +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn setns(fd: BorrowedFd, nstype: c::c_int) -> io::Result { + unsafe { ret_c_int(syscall_readonly!(__NR_setns, fd, c_int(nstype))) } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub(crate) fn unshare(flags: crate::thread::UnshareFlags) -> io::Result<()> { + unsafe { ret(syscall_readonly!(__NR_unshare, c_uint(flags.bits()))) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,3 @@ +#[cfg(any(feature = "time", target_arch = "x86"))] +pub(crate) mod syscalls; +pub(crate) mod types; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/syscalls.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/syscalls.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/syscalls.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/syscalls.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,229 @@ +//! linux_raw syscalls supporting `rustix::time`. +//! +//! # Safety +//! +//! See the `rustix::backend` module documentation for details. +#![allow(unsafe_code)] +#![allow(clippy::undocumented_unsafe_blocks)] + +#[cfg(feature = "time")] +use super::super::conv::{by_ref, ret_owned_fd}; +use super::super::conv::{ret, ret_infallible}; +use super::types::ClockId; +#[cfg(feature = "time")] +use crate::fd::BorrowedFd; +#[cfg(feature = "time")] +use crate::fd::OwnedFd; +use crate::io; +#[cfg(feature = "time")] +use crate::time::{Itimerspec, TimerfdClockId, TimerfdFlags, TimerfdTimerFlags}; +use core::mem::MaybeUninit; +use linux_raw_sys::general::__kernel_timespec; +#[cfg(feature = "time")] +#[cfg(target_pointer_width = "32")] +use {core::convert::TryInto, linux_raw_sys::general::itimerspec as __kernel_old_itimerspec}; +#[cfg(target_pointer_width = "32")] +use {core::ptr, linux_raw_sys::general::timespec as __kernel_old_timespec}; + +// `clock_gettime` has special optimizations via the vDSO. +#[cfg(feature = "time")] +pub(crate) use super::super::vdso_wrappers::{clock_gettime, clock_gettime_dynamic}; + +#[inline] +pub(crate) fn clock_getres(which_clock: ClockId) -> __kernel_timespec { + #[cfg(target_pointer_width = "32")] + unsafe { + let mut result = MaybeUninit::<__kernel_timespec>::uninit(); + if let Err(err) = ret(syscall!(__NR_clock_getres_time64, which_clock, &mut result)) { + // See the comments in `rustix_clock_gettime_via_syscall` about + // emulation. + debug_assert_eq!(err, io::Errno::NOSYS); + clock_getres_old(which_clock, &mut result); + } + result.assume_init() + } + #[cfg(target_pointer_width = "64")] + unsafe { + let mut result = MaybeUninit::<__kernel_timespec>::uninit(); + ret_infallible(syscall!(__NR_clock_getres, which_clock, &mut result)); + result.assume_init() + } +} + +#[cfg(target_pointer_width = "32")] +unsafe fn clock_getres_old(which_clock: ClockId, result: &mut MaybeUninit<__kernel_timespec>) { + let mut old_result = MaybeUninit::<__kernel_old_timespec>::uninit(); + ret_infallible(syscall!(__NR_clock_getres, which_clock, &mut old_result)); + let old_result = old_result.assume_init(); + // TODO: With Rust 1.55, we can use MaybeUninit::write here. + ptr::write( + result.as_mut_ptr(), + __kernel_timespec { + tv_sec: old_result.tv_sec.into(), + tv_nsec: old_result.tv_nsec.into(), + }, + ); +} + +#[cfg(feature = "time")] +#[inline] +pub(crate) fn timerfd_create(clockid: TimerfdClockId, flags: TimerfdFlags) -> io::Result { + unsafe { ret_owned_fd(syscall!(__NR_timerfd_create, clockid, flags)) } +} + +#[cfg(feature = "time")] +#[inline] +pub(crate) fn timerfd_settime( + fd: BorrowedFd<'_>, + flags: TimerfdTimerFlags, + new_value: &Itimerspec, +) -> io::Result { + let mut result = MaybeUninit::::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 `rustix_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(feature = "time")] +#[cfg(target_pointer_width = "32")] +unsafe fn timerfd_settime_old( + fd: BorrowedFd<'_>, + flags: TimerfdTimerFlags, + new_value: &Itimerspec, + result: &mut MaybeUninit, +) -> 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(); + // TODO: With Rust 1.55, we can use MaybeUninit::write here. + ptr::write( + result.as_mut_ptr(), + Itimerspec { + it_interval: __kernel_timespec { + tv_sec: old_result.it_interval.tv_sec.into(), + tv_nsec: old_result.it_interval.tv_nsec.into(), + }, + it_value: __kernel_timespec { + tv_sec: old_result.it_value.tv_sec.into(), + tv_nsec: old_result.it_value.tv_nsec.into(), + }, + }, + ); + Ok(()) +} + +#[cfg(feature = "time")] +#[inline] +pub(crate) fn timerfd_gettime(fd: BorrowedFd<'_>) -> io::Result { + let mut result = MaybeUninit::::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 `rustix_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(feature = "time")] +#[cfg(target_pointer_width = "32")] +unsafe fn timerfd_gettime_old( + fd: BorrowedFd<'_>, + result: &mut MaybeUninit, +) -> 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(); + // TODO: With Rust 1.55, we can use MaybeUninit::write here. + ptr::write( + result.as_mut_ptr(), + Itimerspec { + it_interval: __kernel_timespec { + tv_sec: old_result.it_interval.tv_sec.into(), + tv_nsec: old_result.it_interval.tv_nsec.into(), + }, + it_value: __kernel_timespec { + tv_sec: old_result.it_value.tv_sec.into(), + tv_nsec: old_result.it_value.tv_nsec.into(), + }, + }, + ); + Ok(()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/types.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/types.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/types.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/time/types.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,154 @@ +use super::super::c; +use crate::fd::BorrowedFd; +use bitflags::bitflags; + +/// `struct timespec` +pub type Timespec = linux_raw_sys::general::__kernel_timespec; + +/// A type for the `tv_sec` field of [`Timespec`]. +pub type Secs = linux_raw_sys::general::__kernel_time64_t; + +/// A type for the `tv_nsec` field of [`Timespec`]. +pub type Nsecs = i64; + +/// `struct itimerspec` for use with [`timerfd_gettime`] and +/// [`timerfd_settime`]. +/// +/// [`timerfd_gettime`]: crate::time::timerfd_gettime +/// [`timerfd_settime`]: crate::time::timerfd_settime +pub type Itimerspec = linux_raw_sys::general::__kernel_itimerspec; + +/// `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 +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +#[repr(u32)] +#[non_exhaustive] +pub enum ClockId { + /// `CLOCK_REALTIME` + Realtime = linux_raw_sys::general::CLOCK_REALTIME, + + /// `CLOCK_MONOTONIC` + Monotonic = linux_raw_sys::general::CLOCK_MONOTONIC, + + /// `CLOCK_PROCESS_CPUTIME_ID` + ProcessCPUTime = linux_raw_sys::general::CLOCK_PROCESS_CPUTIME_ID, + + /// `CLOCK_THREAD_CPUTIME_ID` + ThreadCPUTime = linux_raw_sys::general::CLOCK_THREAD_CPUTIME_ID, + + /// `CLOCK_REALTIME_COARSE` + RealtimeCoarse = linux_raw_sys::general::CLOCK_REALTIME_COARSE, + + /// `CLOCK_MONOTONIC_COARSE` + MonotonicCoarse = linux_raw_sys::general::CLOCK_MONOTONIC_COARSE, + + /// `CLOCK_MONOTONIC_RAW` + MonotonicRaw = linux_raw_sys::general::CLOCK_MONOTONIC_RAW, +} + +/// `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 +#[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`, available on Linux >= 3.0 + RealtimeAlarm, + + /// `CLOCK_TAI`, available on Linux >= 3.10 + Tai, + + /// `CLOCK_BOOTTIME`, available on Linux >= 2.6.39 + Boottime, + + /// `CLOCK_BOOTTIME_ALARM`, available on Linux >= 2.6.39 + BoottimeAlarm, +} + +bitflags! { + /// `TFD_*` flags for use with [`timerfd_create`]. + /// + /// [`timerfd_create`]: crate::time::timerfd_create + pub struct TimerfdFlags: c::c_uint { + /// `TFD_NONBLOCK` + const NONBLOCK = linux_raw_sys::general::TFD_NONBLOCK; + + /// `TFD_CLOEXEC` + const CLOEXEC = linux_raw_sys::general::TFD_CLOEXEC; + } +} + +bitflags! { + /// `TFD_TIMER_*` flags for use with [`timerfd_settime`]. + /// + /// [`timerfd_settime`]: crate::time::timerfd_settime + pub struct TimerfdTimerFlags: c::c_uint { + /// `TFD_TIMER_ABSTIME` + const ABSTIME = linux_raw_sys::general::TFD_TIMER_ABSTIME; + + /// `TFD_TIMER_CANCEL_ON_SET` + const CANCEL_ON_SET = linux_raw_sys::general::TFD_TIMER_CANCEL_ON_SET; + } +} + +/// `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. + 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. + 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. + 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. + 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. + BoottimeAlarm = linux_raw_sys::general::CLOCK_BOOTTIME_ALARM, +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,310 @@ +//! Parse the Linux vDSO. +//! +//! The following code is transliterated from +//! tools/testing/selftests/vDSO/parse_vdso.c in Linux 5.11, which is licensed +//! with Creative Commons Zero License, version 1.0, +//! available at +//! +//! # 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 super::elf::*; +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}; + +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, + bucket: *const u32, + chain: *const u32, + nbucket: u32, + //nchain: u32, + + // Version table + versym: *const u16, + verdef: *const Elf_Verdef, +} + +// Straight from the ELF specification. +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 +} + +/// Create a `Vdso` value by parsing the vDSO at the `sysinfo_ehdr` address. +fn init_from_sysinfo_ehdr() -> Option { + // 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(), + bucket: null(), + chain: null(), + nbucket: 0, + //nchain: 0, + versym: null(), + verdef: null(), + }; + + let hdr = &*hdr; + let pt = check_raw_pointer::(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_flags & PF_W != 0 { + // Don't trust any vDSO that claims to be loading writable + // segments into memory. + return None; + } + 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::() { + return None; + } + + dyn_ = check_raw_pointer::(vdso.base_plus(phdr.p_offset)? as *mut _)? + .as_ptr(); + num_dyn = phdr.p_memsz / size_of::(); + } 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 u32 = 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::(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr(); + } + DT_SYMTAB => { + vdso.symtab = + check_raw_pointer::(vdso.addr_from_elf(d.d_val)? as *mut _)? + .as_ptr(); + } + DT_HASH => { + hash = + check_raw_pointer::(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr(); + } + DT_VERSYM => { + vdso.versym = + check_raw_pointer::(vdso.addr_from_elf(d.d_val)? as *mut _)?.as_ptr(); + } + DT_VERDEF => { + vdso.verdef = + check_raw_pointer::(vdso.addr_from_elf(d.d_val)? as *mut _)? + .as_ptr(); + } + DT_SYMENT => { + if d.d_val != size_of::() { + return None; // Failed + } + } + DT_NULL => break, + _ => {} + } + i = i.checked_add(1)?; + } + // The upstream code checks `symstrings`, `symtab`, and `hash` for null; + // here, `check_raw_pointer` has already done that. + + if vdso.verdef.is_null() { + vdso.versym = null(); + } + + // Parse the hash table header. + 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 { + 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::() + .add((*def).vd_next as usize) + .cast::(); + } + + // Now figure out whether it matches. + let aux = &*(def.cast::()) + .add((*def).vd_aux as usize) + .cast::(); + (*def).vd_hash == hash + && (name == CStr::from_ptr(self.symstrings.add(aux.vda_name as usize).cast())) + } + + /// 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); + let name_hash = elf_hash(name); + + // Safety: The pointers in `self` must be valid. + unsafe { + let mut chain = *self.bucket.add((name_hash % self.nbucket) as usize); + + while chain != STN_UNDEF { + let sym = &*self.symtab.add(chain as usize); + + // Check for a defined global or weak function w/ right name. + // + // The reference parser in Linux's parse_vdso.c requires + // symbols to have type `STT_FUNC`, but on powerpc64, the vDSO + // uses `STT_NOTYPE`, so allow that too. + if (ELF_ST_TYPE(sym.st_info) != STT_FUNC && + ELF_ST_TYPE(sym.st_info) != STT_NOTYPE) + || (ELF_ST_BIND(sym.st_info) != STB_GLOBAL + && ELF_ST_BIND(sym.st_info) != STB_WEAK) + || sym.st_shndx == SHN_UNDEF + || sym.st_shndx == SHN_ABS + || ELF_ST_VISIBILITY(sym.st_other) != STV_DEFAULT + || (name != CStr::from_ptr(self.symstrings.add(sym.st_name as usize).cast())) + // Check symbol version. + || (!self.versym.is_null() + && !self.match_version(*self.versym.add(chain as usize), version, ver_hash)) + { + chain = *self.chain.add(chain as usize); + continue; + } + + 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; + } + } + + 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::().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)) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso_wrappers.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso_wrappers.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso_wrappers.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/backend/linux_raw/vdso_wrappers.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,399 @@ +//! Implement syscalls using the vDSO. +//! +//! +//! +//! # 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)] + +use super::conv::{c_int, ret}; +#[cfg(target_arch = "x86")] +use super::reg::{ArgReg, RetReg, SyscallNumber, A0, A1, A2, A3, A4, A5, R0}; +use super::time::types::{ClockId, DynamicClockId, Timespec}; +use super::{c, vdso}; +use crate::io; +#[cfg(all(asm, target_arch = "x86"))] +use core::arch::asm; +use core::mem::{transmute, MaybeUninit}; +use core::ptr::null_mut; +use core::sync::atomic::AtomicPtr; +use core::sync::atomic::Ordering::Relaxed; +#[cfg(target_pointer_width = "32")] +use linux_raw_sys::general::timespec as __kernel_old_timespec; +use linux_raw_sys::general::{__kernel_clockid_t, __kernel_timespec}; + +#[inline] +pub(crate) fn clock_gettime(which_clock: ClockId) -> __kernel_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::<__kernel_timespec>::uninit(); + let callee = match transmute(CLOCK_GETTIME.load(Relaxed)) { + Some(callee) => callee, + None => init_clock_gettime(), + }; + let r0 = callee(which_clock as c::c_int, result.as_mut_ptr()); + assert_eq!(r0, 0); + result.assume_init() + } +} + +#[inline] +pub(crate) fn clock_gettime_dynamic(which_clock: DynamicClockId<'_>) -> io::Result { + let id = match which_clock { + 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; + const CLOCKFD: i32 = 3; + ((!fd.as_raw_fd() << 3) | CLOCKFD) as __kernel_clockid_t + } + + DynamicClockId::RealtimeAlarm => { + linux_raw_sys::general::CLOCK_REALTIME_ALARM as __kernel_clockid_t + } + DynamicClockId::Tai => linux_raw_sys::general::CLOCK_TAI as __kernel_clockid_t, + DynamicClockId::Boottime => linux_raw_sys::general::CLOCK_BOOTTIME as __kernel_clockid_t, + DynamicClockId::BoottimeAlarm => { + linux_raw_sys::general::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::::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), + _ => _rustix_clock_gettime_via_syscall(id, timespec.as_mut_ptr())?, + } + Ok(timespec.assume_init()) + } +} + +#[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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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 { + 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. + 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, + }; +} + +type ClockGettimeType = unsafe extern "C" fn(c::c_int, *mut Timespec) -> 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. +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 `SYSCALL` and return its value. +#[cfg(target_arch = "x86")] +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; +static mut CLOCK_GETTIME: AtomicPtr = AtomicPtr::new(null_mut()); +#[cfg(target_arch = "x86")] +static mut SYSCALL: AtomicPtr = AtomicPtr::new(null_mut()); + +unsafe extern "C" fn rustix_clock_gettime_via_syscall( + clockid: c::c_int, + res: *mut Timespec, +) -> c::c_int { + match _rustix_clock_gettime_via_syscall(clockid, res) { + Ok(()) => 0, + Err(err) => err.raw_os_error().wrapping_neg(), + } +} + +#[cfg(target_pointer_width = "32")] +unsafe fn _rustix_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) => _rustix_clock_gettime_via_syscall_old(clockid, res), + otherwise => otherwise, + } +} + +#[cfg(target_pointer_width = "32")] +unsafe fn _rustix_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(target_pointer_width = "64")] +unsafe fn _rustix_clock_gettime_via_syscall( + clockid: c::c_int, + res: *mut Timespec, +) -> io::Result<()> { + ret(syscall!(__NR_clock_gettime, c_int(clockid), res)) +} + +/// A symbol pointing to an `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. +#[cfg(all(asm, target_arch = "x86"))] +#[naked] +unsafe extern "C" fn rustix_int_0x80() { + asm!("int $$0x80", "ret", options(noreturn)) +} + +// The outline version of the `rustix_int_0x80` above. +#[cfg(all(not(asm), target_arch = "x86"))] +extern "C" { + fn rustix_int_0x80(); +} + +fn minimal_init() { + // Safety: 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. + unsafe { + CLOCK_GETTIME + .compare_exchange( + null_mut(), + rustix_clock_gettime_via_syscall as *mut Function, + Relaxed, + Relaxed, + ) + .ok(); + #[cfg(target_arch = "x86")] + { + SYSCALL + .compare_exchange( + null_mut(), + rustix_int_0x80 as *mut Function, + Relaxed, + Relaxed, + ) + .ok(); + } + } +} + +fn init() { + minimal_init(); + + if let Some(vdso) = vdso::Vdso::new() { + // 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 = "powerpc64")] + let ptr = vdso.sym(cstr!("LINUX_2.6.15"), cstr!("__kernel_clock_gettime")); + #[cfg(target_arch = "mips")] + let ptr = vdso.sym(cstr!("LINUX_2.6"), cstr!("__vdso_clock_gettime64")); + #[cfg(target_arch = "mips64")] + 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 = "x86"))] + let ok = !ptr.is_null(); + + if ok { + assert!(!ptr.is_null()); + + // Safety: Store the computed function addresses in static storage + // so that we don't need to compute it again (but if we do, it doesn't + // hurt anything). + unsafe { + CLOCK_GETTIME.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()); + + // Safety: As above, store the computed function addresses in + // static storage. + unsafe { + SYSCALL.store(ptr.cast(), Relaxed); + } + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/const_assert.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/const_assert.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/const_assert.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/const_assert.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,23 @@ +/// A simple `assert` macro that works in `const fn`, for use until the +/// standard `assert` macro works in `const fn`. +/// +/// TODO: Replace this with just `assert!`, once that's stable for use in +/// a `const fn` context. +#[allow(unused_macros)] +macro_rules! const_assert { + ($x:expr) => { + let b: bool = $x; + let _ = [()][!b as usize]; + }; +} + +#[test] +#[allow(clippy::missing_const_for_fn)] +fn test_const_assert() { + const_assert!(true); +} + +#[test] +const fn test_const_assert_in_const_fn() { + const_assert!(true); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/cstr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/cstr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/cstr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/cstr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,76 @@ +/// 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. +/// +/// [`CStr`]: crate::ffi::CStr +/// +/// # Examples +/// +/// ```rust,no_run +/// # #[cfg(feature = "fs")] +/// # fn main() -> rustix::io::Result<()> { +/// use rustix::cstr; +/// use rustix::fs::{cwd, statat, AtFlags}; +/// +/// let metadata = statat(cwd(), cstr!("test.txt"), 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()) + } + } + }}; +} + +#[test] +fn test_cstr() { + use crate::ffi::CString; + use alloc::borrow::ToOwned; + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/ffi/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/ffi/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/ffi/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/ffi/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,16 @@ +//! Utilities related to FFI bindings. + +// If we have std, use it. +#[cfg(feature = "std")] +pub use { + std::ffi::{CStr, CString, FromBytesWithNulError, NulError}, + std::os::raw::c_char, +}; + +// If we don't have std, we can depend on core and alloc having these features +// in new versions of Rust. +#[cfg(not(feature = "std"))] +pub use { + alloc::ffi::{CString, NulError}, + core::ffi::{c_char, CStr, FromBytesWithNulError}, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/abs.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/abs.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/abs.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/abs.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,69 @@ +//! POSIX-style filesystem functions which operate on bare paths. + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use crate::fs::StatFs; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +use { + crate::fs::StatVfs, + crate::{backend, io, path}, +}; + +/// `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( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub fn statfs(path: P) -> io::Result { + 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/9699919799/functions/statvfs.html +/// [Linux]: https://man7.org/linux/man-pages/man2/statvfs.2.html +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub fn statvfs(path: P) -> io::Result { + path.into_with_c_str(backend::fs::syscalls::statvfs) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/at.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/at.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/at.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/at.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,388 @@ +//! POSIX-style `*at` functions. +//! +//! The `dirfd` argument to these functions may be a file descriptor for a +//! directory, or the special value returned by [`cwd`]. +//! +//! [`cwd`]: crate::fs::cwd + +use crate::fd::OwnedFd; +use crate::ffi::{CStr, CString}; +#[cfg(not(any(target_os = "illumos", target_os = "solaris")))] +use crate::fs::Access; +#[cfg(any(target_os = "ios", target_os = "macos"))] +use crate::fs::CloneFlags; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +use crate::fs::FileType; +#[cfg(any(target_os = "android", target_os = "linux"))] +use crate::fs::RenameFlags; +use crate::fs::{AtFlags, Mode, OFlags, Stat, Timestamps}; +use crate::path::SMALL_PATH_BUFFER_SIZE; +#[cfg(not(target_os = "wasi"))] +use crate::process::{Gid, Uid}; +use crate::{backend, io, path}; +use alloc::vec::Vec; +use backend::fd::{AsFd, BorrowedFd}; +use backend::time::types::Nsecs; + +pub use backend::fs::types::{Dev, RawMode}; + +/// `UTIME_NOW` for use with [`utimensat`]. +/// +/// [`utimensat`]: crate::fs::utimensat +#[cfg(not(target_os = "redox"))] +pub const UTIME_NOW: Nsecs = backend::fs::types::UTIME_NOW as Nsecs; + +/// `UTIME_OMIT` for use with [`utimensat`]. +/// +/// [`utimensat`]: crate::fs::utimensat +#[cfg(not(target_os = "redox"))] +pub const UTIME_OMIT: Nsecs = backend::fs::types::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/9699919799/functions/openat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/open.2.html +#[inline] +pub fn openat( + dirfd: Fd, + path: P, + oflags: OFlags, + create_mode: Mode, +) -> io::Result { + 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` is non-empty, reuse its buffer to store the result if possible. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/readlinkat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/readlinkat.2.html +#[inline] +pub fn readlinkat>>( + dirfd: Fd, + path: P, + reuse: B, +) -> io::Result { + path.into_with_c_str(|path| _readlinkat(dirfd.as_fd(), path, reuse.into())) +} + +fn _readlinkat(dirfd: BorrowedFd<'_>, path: &CStr, mut buffer: Vec) -> io::Result { + // 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::readlinkat(dirfd.as_fd(), 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()); + } + buffer.reserve(1); // use `Vec` reallocation strategy to grow capacity exponentially + buffer.resize(buffer.capacity(), 0_u8); + } +} + +/// `mkdirat(fd, path, mode)`—Creates a directory. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdirat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mkdirat.2.html +#[inline] +pub fn mkdirat(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/9699919799/functions/linkat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/linkat.2.html +#[inline] +pub fn linkat( + 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/9699919799/functions/unlinkat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/unlinkat.2.html +#[inline] +pub fn unlinkat(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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/renameat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/renameat.2.html +#[inline] +pub fn renameat( + 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. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/renameat2.2.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +#[doc(alias = "renameat2")] +pub fn renameat_with( + 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/9699919799/functions/symlinkat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/symlinkat.2.html +#[inline] +pub fn symlinkat( + 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/9699919799/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 +#[inline] +#[doc(alias = "fstatat")] +pub fn statat(dirfd: Fd, path: P, flags: AtFlags) -> io::Result { + 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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/faccessat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/faccessat.2.html +#[cfg(not(any(target_os = "illumos", target_os = "solaris")))] +#[inline] +#[doc(alias = "faccessat")] +pub fn accessat( + 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/9699919799/functions/utimensat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/utimensat.2.html +#[inline] +pub fn utimensat( + 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, 0)`—Sets file or directory permissions. +/// +/// The flags argument is fixed to 0, so `AT_SYMLINK_NOFOLLOW` is not +/// supported.
Platform support for this flag varies widely.
+/// +/// This implementation does not support `O_PATH` file descriptors, even on +/// platforms where the host libc emulates it. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchmodat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fchmodat.2.html +#[cfg(not(target_os = "wasi"))] +#[inline] +#[doc(alias = "fchmodat")] +pub fn chmodat(dirfd: Fd, path: P, mode: Mode) -> io::Result<()> { + path.into_with_c_str(|path| backend::fs::syscalls::chmodat(dirfd.as_fd(), path, mode)) +} + +/// `fclonefileat(src, dst_dir, dst, flags)`—Efficiently copies between files. +/// +/// # References +/// - [Apple] +/// +/// [Apple]: https://opensource.apple.com/source/xnu/xnu-3789.21.4/bsd/man/man2/clonefile.2.auto.html +#[cfg(any(target_os = "ios", target_os = "macos"))] +#[inline] +pub fn fclonefileat( + 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/9699919799/functions/mknodat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mknodat.2.html +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +#[inline] +pub fn mknodat( + 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/9699919799/functions/fchownat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fchownat.2.html +#[cfg(not(target_os = "wasi"))] +#[inline] +#[doc(alias = "fchownat")] +pub fn chownat( + dirfd: Fd, + path: P, + owner: Option, + group: Option, + flags: AtFlags, +) -> io::Result<()> { + path.into_with_c_str(|path| { + backend::fs::syscalls::chownat(dirfd.as_fd(), path, owner, group, flags) + }) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/constants.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/constants.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/constants.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/constants.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +//! Filesystem API constants, translated into `bitflags` constants. + +use crate::backend; + +pub use crate::io::FdFlags; +pub use backend::fs::types::{Access, Mode, OFlags}; + +#[cfg(not(target_os = "redox"))] +pub use backend::fs::types::AtFlags; + +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use backend::fs::types::{CloneFlags, CopyfileFlags}; + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use backend::fs::types::{MountFlags, MountPropagationFlags, RenameFlags, ResolveFlags}; + +#[cfg(not(target_os = "redox"))] +pub use backend::fs::types::Dev; + +pub use backend::time::types::{Nsecs, Secs, Timespec}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/copy_file_range.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/copy_file_range.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/copy_file_range.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/copy_file_range.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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( + fd_in: InFd, + off_in: Option<&mut u64>, + fd_out: OutFd, + off_out: Option<&mut u64>, + len: u64, +) -> io::Result { + backend::fs::syscalls::copy_file_range(fd_in.as_fd(), off_in, fd_out.as_fd(), off_out, len) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/cwd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/cwd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/cwd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/cwd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,32 @@ +//! The `cwd` function, representing the current working directory. +//! +//! # Safety +//! +//! This file uses `AT_FDCWD`, which is a raw file descriptor, but which is +//! always valid. + +#![allow(unsafe_code)] + +use crate::backend; +use backend::fd::{BorrowedFd, RawFd}; + +/// `AT_FDCWD`—Returns a handle representing the current working directory. +/// +/// This returns 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/9699919799/basedefs/fcntl.h.html +#[inline] +#[doc(alias = "AT_FDCWD")] +pub const fn cwd() -> BorrowedFd<'static> { + let at_fdcwd = backend::io::types::AT_FDCWD as RawFd; + + // Safety: `AT_FDCWD` is a reserved value that is never dynamically + // allocated, so it'll remain valid for the duration of `'static`. + unsafe { BorrowedFd::<'static>::borrow_raw(at_fdcwd) } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/dir.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/dir.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/dir.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/dir.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,5 @@ +//! `Dir` and `DirEntry`. + +use crate::backend; + +pub use backend::fs::dir::{Dir, DirEntry}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fadvise.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fadvise.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fadvise.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fadvise.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +use crate::{backend, io}; +use backend::fd::AsFd; + +pub use backend::fs::types::Advice; + +/// `posix_fadvise(fd, offset, len, advice)`—Declares an expected access +/// pattern for a file. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_fadvise.html +/// [Linux]: https://man7.org/linux/man-pages/man2/posix_fadvise.2.html +#[inline] +#[doc(alias = "posix_fadvise")] +pub fn fadvise(fd: Fd, offset: u64, len: u64, advice: Advice) -> io::Result<()> { + backend::fs::syscalls::fadvise(fd.as_fd(), offset, len, advice) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl_darwin.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl_darwin.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl_darwin.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl_darwin.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,24 @@ +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 +#[inline] +pub fn fcntl_rdadvise(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 +#[inline] +pub fn fcntl_fullfsync(fd: Fd) -> io::Result<()> { + backend::fs::syscalls::fcntl_fullfsync(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcntl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,87 @@ +//! 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. + +use crate::{backend, io}; +use backend::fd::AsFd; +use backend::fs::types::OFlags; + +// These `fcntl` functions like in the `io` module because they're not specific +// to files, directories, or memfd objects. We re-export them here in the `fs` +// module because the other the `fcntl` functions are here. +#[cfg(not(target_os = "wasi"))] +pub use crate::io::fcntl_dupfd_cloexec; +pub use crate::io::{fcntl_getfd, fcntl_setfd}; + +/// `fcntl(fd, F_GETFL)`—Returns a file descriptor's access mode and status. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[inline] +#[doc(alias = "F_GETFL")] +pub fn fcntl_getfl(fd: Fd) -> io::Result { + 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/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[inline] +#[doc(alias = "F_SETFL")] +pub fn fcntl_setfl(fd: Fd, flags: OFlags) -> io::Result<()> { + backend::fs::syscalls::fcntl_setfl(fd.as_fd(), flags) +} + +/// `fcntl(fd, F_GET_SEALS)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +#[inline] +#[doc(alias = "F_GET_SEALS")] +pub fn fcntl_get_seals(fd: Fd) -> io::Result { + backend::fs::syscalls::fcntl_get_seals(fd.as_fd()) +} + +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +pub use backend::fs::types::SealFlags; + +/// `fcntl(fd, F_ADD_SEALS)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +#[inline] +#[doc(alias = "F_ADD_SEALS")] +pub fn fcntl_add_seals(fd: Fd, seals: SealFlags) -> io::Result<()> { + backend::fs::syscalls::fcntl_add_seals(fd.as_fd(), seals) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcopyfile.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcopyfile.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcopyfile.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fcopyfile.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,90 @@ +use crate::fs::CopyfileFlags; +use crate::{backend, io}; +use backend::fd::AsFd; + +/// `copyfile_state_t` +pub 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( + 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 { + 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 { + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/fd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,350 @@ +//! Functions which operate on file descriptors. + +#[cfg(not(target_os = "wasi"))] +use crate::fs::Mode; +use crate::io::SeekFrom; +#[cfg(not(target_os = "wasi"))] +use crate::process::{Gid, Uid}; +use crate::{backend, io}; +use backend::fd::{AsFd, BorrowedFd}; + +#[cfg(not(any(target_os = "solaris", target_os = "wasi")))] +pub use backend::fs::types::FlockOperation; + +#[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::fs::types::FallocateFlags; + +pub use backend::fs::types::Stat; + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use backend::fs::types::StatFs; + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use backend::fs::types::{StatVfs, StatVfsMountFlags}; + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use backend::fs::types::FsWord; + +/// 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(Clone, Debug)] +pub struct Timestamps { + /// The timestamp of the last access to a filesystem object. + pub last_access: crate::fs::Timespec, + + /// The timestamp of the last modification of a filesystem object. + pub last_modification: crate::fs::Timespec, +} + +/// The filesystem magic number for procfs. +/// +/// See [the `fstatfs` man page] for more information. +/// +/// [the `fstatfs` man page]: https://man7.org/linux/man-pages/man2/fstatfs.2.html#DESCRIPTION +#[cfg(any(target_os = "android", target_os = "linux"))] +pub const PROC_SUPER_MAGIC: FsWord = backend::fs::types::PROC_SUPER_MAGIC; + +/// The filesystem magic number for NFS. +/// +/// See [the `fstatfs` man page] for more information. +/// +/// [the `fstatfs` man page]: https://man7.org/linux/man-pages/man2/fstatfs.2.html#DESCRIPTION +#[cfg(any(target_os = "android", target_os = "linux"))] +pub const NFS_SUPER_MAGIC: FsWord = backend::fs::types::NFS_SUPER_MAGIC; + +/// `lseek(fd, offset, whence)`—Repositions a file descriptor within a file. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html +/// [Linux]: https://man7.org/linux/man-pages/man2/lseek.2.html +#[inline] +#[doc(alias = "lseek")] +pub fn seek(fd: Fd, pos: SeekFrom) -> io::Result { + 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/9699919799/functions/lseek.html +/// [Linux]: https://man7.org/linux/man-pages/man2/lseek.2.html +#[inline] +#[doc(alias = "lseek")] +pub fn tell(fd: Fd) -> io::Result { + backend::fs::syscalls::tell(fd.as_fd()) +} + +/// `fchmod(fd)`—Sets open file or directory permissions. +/// +/// This implementation does not support `O_PATH` file descriptors, even on +/// platforms where the host libc emulates it. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchmod.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fchmod.2.html +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn fchmod(fd: Fd, mode: Mode) -> io::Result<()> { + backend::fs::syscalls::fchmod(fd.as_fd(), mode) +} + +/// `fchown(fd)`—Sets open file or directory ownership. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchown.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fchown.2.html +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn fchown(fd: Fd, owner: Option, group: Option) -> 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/9699919799/functions/fstat.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fstat.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 fstat(fd: Fd) -> io::Result { + 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( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub fn fstatfs(fd: Fd) -> io::Result { + 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/9699919799/functions/fstatvfs.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fstatvfs.2.html +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +#[inline] +pub fn fstatvfs(fd: Fd) -> io::Result { + 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/9699919799/functions/futimens.html +/// [Linux]: https://man7.org/linux/man-pages/man2/utimensat.2.html +#[inline] +pub fn futimens(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/9699919799/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( + target_os = "aix", + target_os = "dragonfly", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] // not implemented in libc for netbsd yet +#[inline] +#[doc(alias = "posix_fallocate")] +pub fn fallocate(fd: Fd, mode: FallocateFlags, offset: u64, len: u64) -> io::Result<()> { + backend::fs::syscalls::fallocate(fd.as_fd(), mode, offset, len) +} + +/// `fcntl(fd, F_GETFL) & O_ACCMODE` +/// +/// Returns a pair of booleans indicating whether the file descriptor is +/// readable and/or writable, respectively. This is only reliable on files; for +/// example, it doesn't reflect whether sockets have been shut down; for +/// general I/O handle support, use [`io::is_read_write`]. +#[inline] +pub fn is_file_read_write(fd: Fd) -> io::Result<(bool, bool)> { + _is_file_read_write(fd.as_fd()) +} + +pub(crate) fn _is_file_read_write(fd: BorrowedFd<'_>) -> io::Result<(bool, bool)> { + let mode = backend::fs::syscalls::fcntl_getfl(fd)?; + + // Check for `O_PATH`. + #[cfg(any( + target_os = "android", + target_os = "fuchsia", + target_os = "linux", + target_os = "emscripten", + ))] + if mode.contains(crate::fs::OFlags::PATH) { + return Ok((false, false)); + } + + // Use `RWMODE` rather than `ACCMODE` as `ACCMODE` may include `O_PATH`. + // We handled `O_PATH` above. + match mode & crate::fs::OFlags::RWMODE { + crate::fs::OFlags::RDONLY => Ok((true, false)), + crate::fs::OFlags::RDWR => Ok((true, true)), + crate::fs::OFlags::WRONLY => Ok((false, true)), + _ => unreachable!(), + } +} + +/// `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/9699919799/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: 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/9699919799/functions/fdatasync.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fdatasync.2.html +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", +)))] +#[inline] +pub fn fdatasync(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/9699919799/functions/ftruncate.html +/// [Linux]: https://man7.org/linux/man-pages/man2/ftruncate.2.html +#[inline] +pub fn ftruncate(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 = "solaris", target_os = "wasi")))] +#[inline] +pub fn flock(fd: Fd, operation: FlockOperation) -> io::Result<()> { + backend::fs::syscalls::flock(fd.as_fd(), operation) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/file_type.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/file_type.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/file_type.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/file_type.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,4 @@ +use crate::backend; + +/// `S_IF*` constants. +pub use backend::fs::types::FileType; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/getpath.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/getpath.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/getpath.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/getpath.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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: Fd) -> io::Result { + backend::fs::syscalls::getpath(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/makedev.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/makedev.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/makedev.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/makedev.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,35 @@ +use crate::backend; +use crate::fs::Dev; + +/// `makedev(maj, min)` +/// +/// # 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)` +/// +/// # 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)` +/// +/// # 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/memfd_create.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/memfd_create.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/memfd_create.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/memfd_create.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,15 @@ +use crate::fd::OwnedFd; +use crate::{backend, io, path}; + +pub use backend::fs::types::MemfdFlags; + +/// `memfd_create(path, flags)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/memfd_create.2.html +#[inline] +pub fn memfd_create(path: P, flags: MemfdFlags) -> io::Result { + path.into_with_c_str(|path| backend::fs::syscalls::memfd_create(path, flags)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,221 @@ +//! Filesystem operations. + +mod abs; +#[cfg(not(target_os = "redox"))] +mod at; +mod constants; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod copy_file_range; +#[cfg(not(target_os = "redox"))] +mod cwd; +#[cfg(not(target_os = "redox"))] +mod dir; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +mod fadvise; +pub(crate) mod fcntl; +#[cfg(any(target_os = "ios", target_os = "macos"))] +mod fcntl_darwin; +#[cfg(any(target_os = "ios", target_os = "macos"))] +mod fcopyfile; +pub(crate) mod fd; +mod file_type; +#[cfg(any(target_os = "ios", target_os = "macos"))] +mod getpath; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +mod makedev; +#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] +mod memfd_create; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod mount; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod openat2; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod raw_dir; +#[cfg(target_os = "linux")] +mod sendfile; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod statx; + +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use abs::statfs; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use abs::statvfs; +#[cfg(not(any(target_os = "illumos", target_os = "redox", target_os = "solaris")))] +pub use at::accessat; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use at::fclonefileat; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +pub use at::mknodat; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use at::renameat_with; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub use at::{chmodat, chownat}; +#[cfg(not(target_os = "redox"))] +pub use at::{ + linkat, mkdirat, openat, readlinkat, renameat, statat, symlinkat, unlinkat, utimensat, RawMode, + UTIME_NOW, UTIME_OMIT, +}; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use constants::CloneFlags; +/// `copyfile_flags_t` +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use constants::CopyfileFlags; +pub use constants::{Access, FdFlags, Mode, Nsecs, OFlags, Secs, Timespec}; +#[cfg(not(target_os = "redox"))] +pub use constants::{AtFlags, Dev}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use constants::{MountFlags, MountPropagationFlags, RenameFlags, ResolveFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use copy_file_range::copy_file_range; +#[cfg(not(target_os = "redox"))] +pub use cwd::cwd; +#[cfg(not(target_os = "redox"))] +pub use dir::{Dir, DirEntry}; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use fadvise::{fadvise, Advice}; +#[cfg(not(target_os = "wasi"))] +pub use fcntl::fcntl_dupfd_cloexec; +#[cfg(any( + target_os = "android", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "linux", +))] +pub use fcntl::{fcntl_add_seals, fcntl_get_seals, SealFlags}; +pub use fcntl::{fcntl_getfd, fcntl_getfl, fcntl_setfd, fcntl_setfl}; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use fcntl_darwin::{fcntl_fullfsync, fcntl_rdadvise}; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use fcopyfile::{ + copyfile_state_alloc, copyfile_state_free, copyfile_state_get, copyfile_state_get_copied, + copyfile_state_t, fcopyfile, +}; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", +)))] +pub use fd::fdatasync; +#[cfg(not(any( + target_os = "aix", + target_os = "dragonfly", + target_os = "illumos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use fd::{fallocate, FallocateFlags}; +#[cfg(not(target_os = "wasi"))] +pub use fd::{fchmod, fchown}; +#[cfg(not(any(target_os = "solaris", target_os = "wasi")))] +pub use fd::{flock, FlockOperation}; +pub use fd::{fstat, fsync, ftruncate, futimens, is_file_read_write, seek, tell, Stat, Timestamps}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "netbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use fd::{fstatfs, StatFs}; +#[cfg(not(any( + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use fd::{fstatvfs, StatVfs, StatVfsMountFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use fd::{FsWord, NFS_SUPER_MAGIC, PROC_SUPER_MAGIC}; +pub use file_type::FileType; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use getpath::getpath; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use makedev::{major, makedev, minor}; +#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] +pub use memfd_create::{memfd_create, MemfdFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use mount::{bind_mount, change_mount, mount, move_mount, recursive_bind_mount, remount}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use openat2::openat2; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use raw_dir::{RawDir, RawDirEntry}; +#[cfg(target_os = "linux")] +pub use sendfile::sendfile; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use statx::{statx, Statx, StatxFlags, StatxTimestamp}; + +/// 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(target_os = "wasi")] +pub use std::os::wasi::fs::{DirEntryExt, FileExt, FileTypeExt, MetadataExt, OpenOptionsExt}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mount.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mount.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mount.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/mount.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,150 @@ +//! Linux `mount`. + +use crate::backend::fs::types::{ + InternalMountFlags, MountFlags, MountFlagsArg, MountPropagationFlags, +}; +use crate::{backend, io, path}; + +/// `mount(source, target, filesystemtype, mountflags, data)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html +#[inline] +pub fn mount( + 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| { + data.into_with_c_str(|data| { + backend::fs::syscalls::mount( + Some(source), + target, + Some(file_system_type), + MountFlagsArg(flags.bits()), + Some(data), + ) + }) + }) + }) + }) +} + +/// `mount(null, target, null, MS_REMOUNT | mountflags, data)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html +#[inline] +pub fn remount( + target: Target, + flags: MountFlags, + data: Data, +) -> io::Result<()> { + target.into_with_c_str(|target| { + data.into_with_c_str(|data| { + backend::fs::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] +pub fn bind_mount( + source: Source, + target: Target, +) -> io::Result<()> { + source.into_with_c_str(|source| { + target.into_with_c_str(|target| { + backend::fs::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] +pub fn recursive_bind_mount( + source: Source, + target: Target, +) -> io::Result<()> { + source.into_with_c_str(|source| { + target.into_with_c_str(|target| { + backend::fs::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] +pub fn change_mount( + target: Target, + flags: MountPropagationFlags, +) -> io::Result<()> { + target.into_with_c_str(|target| { + backend::fs::syscalls::mount(None, target, None, MountFlagsArg(flags.bits()), None) + }) +} + +/// `mount(source, target, null, MS_MOVE, null)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mount.2.html +#[inline] +pub fn move_mount( + source: Source, + target: Target, +) -> io::Result<()> { + source.into_with_c_str(|source| { + target.into_with_c_str(|target| { + backend::fs::syscalls::mount( + Some(source), + target, + None, + MountFlagsArg(InternalMountFlags::MOVE.bits()), + None, + ) + }) + }) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/openat2.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/openat2.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/openat2.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/openat2.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,23 @@ +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))` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/openat2.2.html +#[inline] +pub fn openat2( + dirfd: Fd, + path: P, + oflags: OFlags, + mode: Mode, + resolve: ResolveFlags, +) -> io::Result { + path.into_with_c_str(|path| { + backend::fs::syscalls::openat2(dirfd.as_fd(), path, oflags, mode, resolve) + }) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/raw_dir.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/raw_dir.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/raw_dir.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/raw_dir.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,210 @@ +//! `RawDir` and `RawDirEntry`. + +use core::fmt; +use core::mem::{align_of, MaybeUninit}; +use linux_raw_sys::general::linux_dirent64; + +use crate::backend::fs::syscalls::getdents_uninit; +use crate::fd::AsFd; +use crate::ffi::CStr; +use crate::fs::FileType; +use crate::io; + +/// 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], + 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: + /// + /// ```notrust + /// # // The `notrust` above can be removed when we can depend on Rust 1.60. + /// # use std::mem::MaybeUninit; + /// # use rustix::fs::{cwd, Mode, OFlags, openat, RawDir}; + /// + /// let fd = openat(cwd(), ".", OFlags::RDONLY | OFlags::DIRECTORY, 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}; + /// + /// let fd = openat(cwd(), ".", OFlags::RDONLY | OFlags::DIRECTORY, 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: + /// + /// ```notrust + /// # // The `notrust` above can be removed when we can depend on Rust 1.60. + /// # use std::mem::MaybeUninit; + /// # use rustix::fs::{cwd, Mode, OFlags, openat, RawDir}; + /// # use rustix::io::Errno; + /// + /// let fd = openat(cwd(), ".", OFlags::RDONLY | OFlags::DIRECTORY, 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]) -> Self { + Self { + fd, + buf: { + let offset = buf.as_ptr().align_offset(align_of::()); + if offset < buf.len() { + &mut buf[offset..] + } else { + &mut [] + } + }, + initialized: 0, + offset: 0, + } + } +} + +/// A raw directory entry, similar to `std::fs::DirEntry`. +/// +/// Note that 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)] + pub fn next(&mut self) -> Option> { + if self.is_buffer_empty() { + match getdents_uninit(self.fd.as_fd(), self.buf) { + Ok(bytes_read) if bytes_read == 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::() }; + + self.offset += usize::from(dirent.d_reclen); + + Some(Ok(RawDirEntry { + file_type: dirent.d_type, + inode_number: dirent.d_ino, + next_entry_cookie: dirent.d_off, + // 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`][Self::next]. + pub fn is_buffer_empty(&self) -> bool { + self.offset >= self.initialized + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/sendfile.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/sendfile.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/sendfile.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/sendfile.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,19 @@ +use crate::{backend, io}; +use backend::fd::AsFd; + +/// `sendfile(out_fd, in_fd, offset, count)` +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/sendfile.2.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn sendfile( + out_fd: OutFd, + in_fd: InFd, + offset: Option<&mut u64>, + count: usize, +) -> io::Result { + backend::fs::syscalls::sendfile(out_fd.as_fd(), in_fd.as_fd(), offset, count) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/statx.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/statx.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/fs/statx.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/fs/statx.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,91 @@ +//! Linux `statx`. + +use crate::fd::{AsFd, BorrowedFd}; +use crate::ffi::CStr; +use crate::fs::AtFlags; +use crate::{backend, io, path}; +use core::sync::atomic::{AtomicU8, Ordering}; + +pub use backend::fs::types::{Statx, StatxFlags, StatxTimestamp}; + +/// `statx(dirfd, path, flags, mask, statxbuf)` +/// +/// 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/statx.2.html +#[inline] +pub fn statx( + dirfd: Fd, + path: P, + flags: AtFlags, + mask: StatxFlags, +) -> io::Result { + path.into_with_c_str(|path| _statx(dirfd.as_fd(), path, flags, mask)) +} + +// Linux kernel prior to 4.11 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] +fn _statx( + dirfd: BorrowedFd<'_>, + path: &CStr, + flags: AtFlags, + mask: StatxFlags, +) -> io::Result { + 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 { + match backend::fs::syscalls::statx(dirfd, path, flags, mask) { + Err(io::Errno::NOSYS) => statx_error_nosys(), + Err(io::Errno::PERM) => statx_error_perm(), + result => { + STATX_STATE.store(2, Ordering::Relaxed); + result + } + } +} + +/// The first `statx` call failed with `NOSYS` (or something we're treating +/// like `NOSYS`). +#[cold] +fn statx_error_nosys() -> io::Result { + STATX_STATE.store(1, Ordering::Relaxed); + Err(io::Errno::NOSYS) +} + +/// The first `statx` call failed with `PERM`. +#[cold] +fn statx_error_perm() -> io::Result { + // Some old versions of Docker have `statx` fail with `PERM` when it isn't + // recognized. Check whether `statx` really is available, and if so, fail + // with `PERM`, and if not, treat it like `NOSYS`. + if backend::fs::syscalls::is_statx_available() { + STATX_STATE.store(2, Ordering::Relaxed); + Err(io::Errno::PERM) + } else { + statx_error_nosys() + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/close.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/close.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/close.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/close.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,41 @@ +//! 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 +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-closesocket +/// +/// # 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) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/context.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/context.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/context.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/context.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,163 @@ +//! Context types for polling systems, e.g. kqueue and epoll. + +#![allow(unsafe_code)] + +use crate::fd::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; + +use core::fmt; +use core::marker::PhantomData; +use core::ops::Deref; + +/// A reference to a `T`. +pub struct Ref<'a, T> { + t: T, + _phantom: PhantomData<&'a T>, +} + +impl<'a, T> Ref<'a, T> { + #[inline] + fn new(t: T) -> Self { + Self { + t, + _phantom: PhantomData, + } + } + + #[inline] + fn consume(self) -> T { + self.t + } +} + +impl<'a, T> Deref for Ref<'a, T> { + type Target = T; + + #[inline] + fn deref(&self) -> &T { + &self.t + } +} + +impl<'a, T: fmt::Debug> fmt::Debug for Ref<'a, T> { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + self.t.fmt(fmt) + } +} + +/// A trait for data stored within an [`Epoll`] instance. +/// +/// [`Epoll`]: crate::io::epoll::Epoll +pub trait Context { + /// The type of an element owned by this context. + type Data; + + /// The type of a value used to refer to an element owned by this context. + type Target: AsFd; + + /// Assume ownership of `data`, and returning a `Target`. + fn acquire<'call>(&self, data: Self::Data) -> Ref<'call, Self::Target>; + + /// Encode `target` as a `u64`. The only requirement on this value is that + /// it be decodable by `decode`. + fn encode(&self, target: Ref<'_, Self::Target>) -> u64; + + /// Decode `raw`, which is a value encoded by `encode`, into a `Target`. + /// + /// # Safety + /// + /// `raw` must be a `u64` value returned from `encode`, from the same + /// context, and within the context's lifetime. + unsafe fn decode<'call>(&self, raw: u64) -> Ref<'call, Self::Target>; + + /// Release ownership of the value referred to by `target` and return it. + fn release(&self, target: Ref<'_, Self::Target>) -> Self::Data; +} + +/// A type implementing [`Context`] where the `Data` type is `BorrowedFd<'a>`. +pub struct Borrowing<'a> { + _phantom: PhantomData>, +} + +impl<'a> Context for Borrowing<'a> { + type Data = BorrowedFd<'a>; + type Target = BorrowedFd<'a>; + + #[inline] + fn acquire<'call>(&self, data: Self::Data) -> Ref<'call, Self::Target> { + Ref::new(data) + } + + #[inline] + fn encode(&self, target: Ref<'_, Self::Target>) -> u64 { + target.as_raw_fd() as u64 + } + + #[inline] + unsafe fn decode<'call>(&self, raw: u64) -> Ref<'call, Self::Target> { + Ref::new(BorrowedFd::<'a>::borrow_raw(raw as RawFd)) + } + + #[inline] + fn release(&self, target: Ref<'_, Self::Target>) -> Self::Data { + target.consume() + } +} + +/// A type implementing [`Context`] where the `Data` type is `T`, a type +/// implementing `From` and `From for OwnedFd`. +/// +/// This may be used with [`OwnedFd`], or higher-level types like +/// [`std::fs::File`] or [`std::net::TcpStream`]. +#[cfg(not(feature = "rustc-dep-of-std"))] +pub struct Owning<'context, T: Into + From> { + _phantom: PhantomData<&'context T>, +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: Into + From> Owning<'context, T> { + /// Creates a new empty `Owning`. + #[allow(clippy::new_without_default)] // This is a specialized type that doesn't need to be generically constructible. + #[inline] + pub fn new() -> Self { + Self { + _phantom: PhantomData, + } + } +} + +#[cfg(not(feature = "rustc-dep-of-std"))] +impl<'context, T: AsFd + Into + From> Context for Owning<'context, T> { + type Data = T; + type Target = BorrowedFd<'context>; + + #[inline] + fn acquire<'call>(&self, data: Self::Data) -> Ref<'call, Self::Target> { + let fd: OwnedFd = data.into(); + let raw_fd = fd.into_raw_fd(); + // Safety: `epoll` will assign ownership of the file descriptor to the + // kernel epoll object. We use `Into`+`IntoRawFd` to consume + // the `Data` and extract the raw file descriptor and then "borrow" it + // with `borrow_raw` knowing that the borrow won't outlive the + // kernel epoll object. + unsafe { Ref::new(BorrowedFd::<'context>::borrow_raw(raw_fd)) } + } + + #[inline] + fn encode(&self, target: Ref<'_, Self::Target>) -> u64 { + target.as_fd().as_raw_fd() as u64 + } + + #[inline] + unsafe fn decode<'call>(&self, raw: u64) -> Ref<'call, Self::Target> { + Ref::new(BorrowedFd::<'context>::borrow_raw(raw as RawFd)) + } + + #[inline] + fn release(&self, target: Ref<'_, Self::Target>) -> Self::Data { + // The file descriptor was held by the kernel epoll object and is now + // being released, so we can create a new `OwnedFd` that assumes + // ownership. + let raw_fd = target.consume().as_raw_fd(); + unsafe { T::from(OwnedFd::from_raw_fd(raw_fd).into()) } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/dup.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/dup.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/dup.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/dup.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,80 @@ +//! 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] +/// +/// [file description]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258 +/// [`fcntl_dupfd_cloexec`]: crate::io::fcntl_dupfd_cloexec +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn dup(fd: Fd) -> io::Result { + 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`] +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [file description]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258 +/// [`fcntl_dupfd_cloexec`]: crate::io::fcntl_dupfd_cloexec +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn dup2(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] +/// +/// [file description]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258 +/// [Linux]: https://man7.org/linux/man-pages/man2/dup3.2.html +#[cfg(not(any(target_os = "aix", target_os = "wasi")))] +#[inline] +pub fn dup3(fd: Fd, new: &mut OwnedFd, flags: DupFlags) -> io::Result<()> { + backend::io::syscalls::dup3(fd.as_fd(), new, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/errno.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/errno.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/errno.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/errno.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,85 @@ +//! 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 UB. + +use crate::backend; +use core::{fmt, result}; +#[cfg(feature = "std")] +use std::error; + +/// A specialized [`Result`] type for `rustix` APIs. +/// +/// [`Result`]: core::result::Result +pub type Result = result::Result; + +/// `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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html +/// [Linux]: https://man7.org/linux/man-pages/man3/errno.3.html +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, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + #[cfg(feature = "std")] + { + std::io::Error::from(*self).fmt(fmt) + } + #[cfg(not(feature = "std"))] + { + write!(fmt, "os error {}", self.raw_os_error()) + } + } +} + +impl fmt::Debug for Errno { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + #[cfg(feature = "std")] + { + std::io::Error::from(*self).fmt(fmt) + } + #[cfg(not(feature = "std"))] + { + write!(fmt, "os error {}", self.raw_os_error()) + } + } +} + +#[cfg(feature = "std")] +impl error::Error for Errno {} + +#[cfg(feature = "std")] +impl From 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 Result>(mut f: F) -> Result { + loop { + match f() { + Err(Errno::INTR) => (), + result => return result, + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/eventfd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/eventfd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/eventfd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/eventfd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,16 @@ +use crate::fd::OwnedFd; +use crate::{backend, io}; + +pub use backend::io::types::EventfdFlags; + +/// `eventfd(initval, flags)`—Creates a file descriptor for event +/// notification. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/eventfd.2.html +#[inline] +pub fn eventfd(initval: u32, flags: EventfdFlags) -> io::Result { + backend::io::syscalls::eventfd(initval, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fcntl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fcntl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fcntl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fcntl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,85 @@ +//! 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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[inline] +#[doc(alias = "F_GETFD")] +pub fn fcntl_getfd(fd: Fd) -> io::Result { + backend::io::syscalls::fcntl_getfd(fd.as_fd()) +} + +/// `fcntl(fd, F_SETFD, flags)`—Sets a file descriptor's flags. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[inline] +#[doc(alias = "F_SETFD")] +pub fn fcntl_setfd(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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[cfg(not(any(target_os = "wasi", target_os = "espidf")))] +#[inline] +#[doc(alias = "F_DUPFD_CLOEXEC")] +pub fn fcntl_dupfd_cloexec(fd: Fd, min: RawFd) -> io::Result { + 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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fcntl.2.html +#[cfg(target_os = "espidf")] +#[inline] +#[doc(alias = "F_DUPFD")] +pub fn fcntl_dupfd(fd: Fd, min: RawFd) -> io::Result { + backend::io::syscalls::fcntl_dupfd(fd.as_fd(), min) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,17 @@ +//! The following is derived from Rust's +//! library/std/src/os/fd/mod.rs at revision +//! fa68e73e9947be8ffc5b3b46d899e4953a44e7e9. +//! +//! Owned and borrowed Unix-like file descriptors. + +#![cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))] +#![deny(unsafe_op_in_unsafe_fn)] + +// `RawFd`, `AsRawFd`, etc. +mod raw; + +// `OwnedFd`, `AsFd`, etc. +mod owned; + +pub use owned::*; +pub use raw::*; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/owned.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/owned.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/owned.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/owned.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,252 @@ +//! The following is derived from Rust's +//! library/std/src/os/fd/owned.rs at revision +//! fa68e73e9947be8ffc5b3b46d899e4953a44e7e9. +//! +//! 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. +/// +/// 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's `.to_owned()` implementation returns another `BorrowedFd` +/// rather than an `OwnedFd`. It just makes a trivial copy of the raw file +/// descriptor, which is then borrowed under the same lifetime. +#[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(staged_api, unstable(feature = "io_safety", issue = "87074"))] +#[cfg_attr(rustc_attrs, rustc_nonnull_optimization_guaranteed)] +pub struct BorrowedFd<'fd> { + fd: RawFd, + _phantom: PhantomData<&'fd OwnedFd>, +} + +/// An owned file descriptor. +/// +/// This closes the file descriptor on drop. +/// +/// 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`. +#[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<'_> { + /// Return 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, unstable(feature = "io_safety", issue = "87074"))] + 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 { + // 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)?; + + Ok(fd.into()) + } + + #[cfg(target_arch = "wasm32")] + pub fn try_clone(&self) -> crate::io::Result { + Err(crate::io::const_io_error!( + crate::io::ErrorKind::Unsupported, + "operation not supported on WASI yet", + )) + } +} + +#[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. The resource must not require any cleanup other than `close`. + #[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. + let _ = 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 + /// + /// ```rust,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 AsFd for &T { + #[inline] + fn as_fd(&self) -> BorrowedFd<'_> { + T::as_fd(self) + } +} + +#[cfg_attr(staged_api, unstable(feature = "io_safety", issue = "87074"))] +impl 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/raw.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/raw.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/raw.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/fd/raw.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,159 @@ +//! The following is derived from Rust's +//! library/std/src/os/fd/raw.rs at revision +//! fa68e73e9947be8ffc5b3b46d899e4953a44e7e9. +//! +//! 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::from`] implementation for an API which strictly + /// consumes ownership. + /// + /// # Safety + /// + /// The `fd` passed in must be a valid an open file descriptor. + /// + /// # 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::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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/ioctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/ioctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/ioctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/ioctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,99 @@ +//! 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. + +use crate::{backend, io}; +use backend::fd::AsFd; + +/// `ioctl(fd, TIOCEXCL)`—Enables exclusive mode on a terminal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html +#[cfg(not(any(windows, target_os = "haiku", target_os = "redox", target_os = "wasi")))] +#[inline] +#[doc(alias = "TIOCEXCL")] +pub fn ioctl_tiocexcl(fd: Fd) -> io::Result<()> { + backend::io::syscalls::ioctl_tiocexcl(fd.as_fd()) +} + +/// `ioctl(fd, TIOCNXCL)`—Disables exclusive mode on a terminal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man4/tty_ioctl.4.html +#[cfg(not(any(windows, target_os = "haiku", target_os = "redox", target_os = "wasi")))] +#[inline] +#[doc(alias = "TIOCNXCL")] +pub fn ioctl_tiocnxcl(fd: Fd) -> io::Result<()> { + backend::io::syscalls::ioctl_tiocnxcl(fd.as_fd()) +} + +/// `ioctl(fd, FIOCLEX)`—Set the close-on-exec flag. +/// +/// Also known as `fcntl(fd, F_SETFD, FD_CLOEXEC)`. +/// +/// # References +/// - [Linux] +/// - [Winsock2] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl.2.html +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-ioctlsocket +#[cfg(any(target_os = "ios", target_os = "macos"))] +#[inline] +#[doc(alias = "FIOCLEX")] +#[doc(alias = "FD_CLOEXEC")] +pub fn ioctl_fioclex(fd: Fd) -> io::Result<()> { + backend::io::syscalls::ioctl_fioclex(fd.as_fd()) +} + +/// `ioctl(fd, FIONBIO, &value)`—Enables or disables non-blocking mode. +/// +/// # References +/// - [Linux] +/// - [Winsock2] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl.2.html +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-ioctls#unix-ioctl-codes +#[inline] +#[doc(alias = "FIONBIO")] +pub fn ioctl_fionbio(fd: Fd, value: bool) -> io::Result<()> { + backend::io::syscalls::ioctl_fionbio(fd.as_fd(), value) +} + +/// `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] +/// - [Winsock2] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/ioctl_tty.2.html +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/winsock/winsock-ioctls#unix-ioctl-codes +#[cfg(not(target_os = "redox"))] +#[inline] +#[doc(alias = "FIONREAD")] +pub fn ioctl_fionread(fd: Fd) -> io::Result { + backend::io::syscalls::ioctl_fionread(fd.as_fd()) +} + +/// `ioctl(fd, BLKSSZGET)`—Returns the logical block size of a block device. +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +#[doc(alias = "BLKSSZGET")] +pub fn ioctl_blksszget(fd: Fd) -> io::Result { + backend::io::syscalls::ioctl_blksszget(fd.as_fd()) +} + +/// `ioctl(fd, BLKPBSZGET)`—Returns the physical block size of a block device. +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +#[doc(alias = "BLKPBSZGET")] +pub fn ioctl_blkpbszget(fd: Fd) -> io::Result { + backend::io::syscalls::ioctl_blkpbszget(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/is_read_write.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/is_read_write.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/is_read_write.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/is_read_write.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +//! The [`is_read_write`] function. + +#[cfg(all(feature = "fs", feature = "net"))] +use crate::{backend, io}; +#[cfg(all(feature = "fs", feature = "net"))] +use backend::fd::AsFd; + +/// Returns a pair of booleans indicating whether the file descriptor is +/// readable and/or writable, respectively. +/// +/// Unlike [`is_file_read_write`], this correctly detects whether sockets +/// have been shutdown, partially or completely. +/// +/// [`is_file_read_write`]: crate::fs::is_file_read_write +#[inline] +#[cfg(all(feature = "fs", feature = "net"))] +#[cfg_attr(doc_cfg, doc(cfg(all(feature = "fs", feature = "net"))))] +pub fn is_read_write(fd: Fd) -> io::Result<(bool, bool)> { + backend::io::syscalls::is_read_write(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,99 @@ +//! I/O operations. + +mod close; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub(crate) mod context; +#[cfg(not(windows))] +mod dup; +mod errno; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod eventfd; +#[cfg(not(windows))] +mod fcntl; +#[cfg(not(feature = "std"))] +pub(crate) mod fd; +mod ioctl; +#[cfg(not(any(windows, target_os = "redox")))] +mod is_read_write; +#[cfg(not(any(windows, target_os = "wasi")))] +mod pipe; +mod poll; +#[cfg(all(feature = "procfs", any(target_os = "android", target_os = "linux")))] +mod procfs; +#[cfg(not(windows))] +mod read_write; +#[cfg(not(feature = "std"))] +mod seek_from; +#[cfg(not(windows))] +mod stdio; + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use crate::backend::io::epoll; +pub use close::close; +#[cfg(not(any(windows, target_os = "aix", target_os = "wasi")))] +pub use dup::{dup, dup2, dup3, DupFlags}; +pub use errno::{retry_on_intr, Errno, Result}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use eventfd::{eventfd, EventfdFlags}; +#[cfg(not(any(windows, target_os = "wasi")))] +pub use fcntl::fcntl_dupfd_cloexec; +#[cfg(not(windows))] +pub use fcntl::{fcntl_getfd, fcntl_setfd, FdFlags}; +#[cfg(any(target_os = "ios", target_os = "macos"))] +pub use ioctl::ioctl_fioclex; +pub use ioctl::ioctl_fionbio; +#[cfg(not(target_os = "redox"))] +pub use ioctl::ioctl_fionread; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use ioctl::{ioctl_blkpbszget, ioctl_blksszget}; +#[cfg(not(any(windows, target_os = "haiku", target_os = "redox", target_os = "wasi")))] +pub use ioctl::{ioctl_tiocexcl, ioctl_tiocnxcl}; +#[cfg(not(any(windows, target_os = "redox")))] +#[cfg(all(feature = "fs", feature = "net"))] +pub use is_read_write::is_read_write; +#[cfg(not(any(windows, target_os = "wasi")))] +pub use pipe::pipe; +#[cfg(not(any( + windows, + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use pipe::PIPE_BUF; +#[cfg(not(any( + windows, + target_os = "aix", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "wasi" +)))] +pub use pipe::{pipe_with, PipeFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use pipe::{splice, vmsplice, IoSliceRaw, SpliceFlags}; +pub use poll::{poll, PollFd, PollFlags}; +#[cfg(all(feature = "procfs", any(target_os = "android", target_os = "linux")))] +pub use procfs::{ + proc_self_fd, proc_self_fdinfo_fd, proc_self_maps, proc_self_pagemap, proc_self_status, +}; +#[cfg(not(windows))] +pub use read_write::{pread, pwrite, read, readv, write, writev, IoSlice, IoSliceMut}; +#[cfg(not(any( + windows, + target_os = "haiku", + target_os = "redox", + target_os = "solaris" +)))] +pub use read_write::{preadv, pwritev}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use read_write::{preadv2, pwritev2, ReadWriteFlags}; +#[cfg(not(feature = "std"))] +pub use seek_from::SeekFrom; +#[cfg(feature = "std")] +pub use std::io::SeekFrom; +#[cfg(not(windows))] +pub use stdio::{ + raw_stderr, raw_stdin, raw_stdout, stderr, stdin, stdout, take_stderr, take_stdin, take_stdout, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/pipe.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/pipe.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/pipe.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/pipe.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,130 @@ +#![allow(unsafe_code)] + +use crate::fd::OwnedFd; +use crate::{backend, io}; +#[cfg(any(target_os = "android", target_os = "linux"))] +use backend::fd::AsFd; + +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::io::types::PipeFlags; + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use backend::io::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/9699919799/functions/write.html +#[cfg(not(any( + windows, + target_os = "haiku", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub const PIPE_BUF: usize = backend::io::types::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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/pipe.html +/// [Linux]: https://man7.org/linux/man-pages/man2/pipe.2.html +#[inline] +pub fn pipe() -> io::Result<(OwnedFd, OwnedFd)> { + backend::io::syscalls::pipe() +} + +/// `pipe2(flags)`—Creates a pipe, with flags. +/// +/// This function creates a pipe and returns two file descriptors, for the +/// reading and writing ends of the pipe, respectively. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/pipe2.2.html +#[cfg(not(any( + target_os = "aix", + target_os = "haiku", + target_os = "ios", + target_os = "macos" +)))] +#[inline] +#[doc(alias = "pipe2")] +pub fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> { + backend::io::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(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn splice( + fd_in: FdIn, + off_in: Option<&mut u64>, + fd_out: FdOut, + off_out: Option<&mut u64>, + len: usize, + flags: SpliceFlags, +) -> io::Result { + backend::io::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(any(target_os = "android", target_os = "linux"))] +#[inline] +pub unsafe fn vmsplice( + fd: PipeFd, + bufs: &[io::IoSliceRaw], + flags: SpliceFlags, +) -> io::Result { + backend::io::syscalls::vmsplice(fd.as_fd(), bufs, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/poll.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/poll.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/poll.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/poll.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +use crate::{backend, io}; + +pub use backend::io::poll_fd::{PollFd, PollFlags}; + +/// `poll(self.fds, timeout)` +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsapoll +#[inline] +pub fn poll(fds: &mut [PollFd<'_>], timeout: i32) -> io::Result { + backend::io::syscalls::poll(fds, timeout) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/procfs.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/procfs.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/procfs.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/procfs.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,464 @@ +//! Utilities for working with `/proc`, where Linux's `procfs` is typically +//! mounted. `/proc` serves as an adjunct to Linux's main syscall surface area, +//! providing additional features with an awkward interface. +//! +//! This module does a considerable amount of work to determine whether `/proc` +//! is mounted, with actual `procfs`, and without any additional mount points +//! on top of the paths we open. +//! +//! Why all the effort to detect bind mount points? People are doing all kinds +//! of things with Linux containers these days, with many different privilege +//! schemes, and we want to avoid making any unnecessary assumptions. Rustix +//! and its users will sometimes use procfs *implicitly* (when Linux gives them +//! no better options), in ways that aren't obvious from their public APIs. +//! These filesystem accesses might not be visible to someone auditing the main +//! code of an application for places which may be influenced by the filesystem +//! namespace. So with the checking here, they may fail, but they won't be able +//! to succeed with bogus results. + +use crate::fd::{AsFd, BorrowedFd, OwnedFd}; +use crate::ffi::CStr; +use crate::fs::{ + cwd, fstat, fstatfs, major, openat, renameat, Dir, FileType, Mode, OFlags, Stat, + PROC_SUPER_MAGIC, +}; +use crate::io; +use crate::path::DecInt; +use crate::process::getpid; +#[cfg(feature = "rustc-dep-of-std")] +use core::lazy::OnceCell; +#[cfg(not(feature = "rustc-dep-of-std"))] +use once_cell::sync::OnceCell; + +/// Linux's procfs always uses inode 1 for its root directory. +const PROC_ROOT_INO: u64 = 1; + +// Identify an entry within "/proc", to determine which anomalies to check for. +#[derive(Copy, Clone, Debug)] +enum Kind { + Proc, + Pid, + Fd, + File, +} + +/// Check a subdirectory of "/proc" for anomalies. +fn check_proc_entry( + kind: Kind, + entry: BorrowedFd<'_>, + proc_stat: Option<&Stat>, +) -> io::Result { + let entry_stat = fstat(entry)?; + check_proc_entry_with_stat(kind, entry, entry_stat, proc_stat) +} + +/// Check a subdirectory of "/proc" for anomalies, using the provided `Stat`. +fn check_proc_entry_with_stat( + kind: Kind, + entry: BorrowedFd<'_>, + entry_stat: Stat, + proc_stat: Option<&Stat>, +) -> io::Result { + // Check the filesystem magic. + check_procfs(entry)?; + + match kind { + Kind::Proc => check_proc_root(entry, &entry_stat)?, + Kind::Pid | Kind::Fd => check_proc_subdir(entry, &entry_stat, proc_stat)?, + Kind::File => check_proc_file(&entry_stat, proc_stat)?, + } + + // "/proc" directories are typically mounted r-xr-xr-x. + // "/proc/self/fd" is r-x------. Allow them to have fewer permissions, but + // not more. + let expected_mode = if let Kind::Fd = kind { 0o500 } else { 0o555 }; + if entry_stat.st_mode & 0o777 & !expected_mode != 0 { + return Err(io::Errno::NOTSUP); + } + + match kind { + Kind::Fd => { + // Check that the "/proc/self/fd" directory doesn't have any extraneous + // links into it (which might include unexpected subdirectories). + if entry_stat.st_nlink != 2 { + return Err(io::Errno::NOTSUP); + } + } + Kind::Pid | Kind::Proc => { + // Check that the "/proc" and "/proc/self" directories aren't empty. + if entry_stat.st_nlink <= 2 { + return Err(io::Errno::NOTSUP); + } + } + Kind::File => { + // Check that files in procfs don't have extraneous hard links to + // them (which might indicate hard links to other things). + if entry_stat.st_nlink != 1 { + return Err(io::Errno::NOTSUP); + } + } + } + + Ok(entry_stat) +} + +fn check_proc_root(entry: BorrowedFd<'_>, stat: &Stat) -> io::Result<()> { + // We use `O_DIRECTORY` for proc directories, so open should fail if we + // don't get a directory when we expect one. + assert_eq!(FileType::from_raw_mode(stat.st_mode), FileType::Directory); + + // Check the root inode number. + if stat.st_ino != PROC_ROOT_INO { + return Err(io::Errno::NOTSUP); + } + + // Proc is a non-device filesystem, so check for major number 0. + // + if major(stat.st_dev) != 0 { + return Err(io::Errno::NOTSUP); + } + + // Check that "/proc" is a mountpoint. + if !is_mountpoint(entry) { + return Err(io::Errno::NOTSUP); + } + + Ok(()) +} + +fn check_proc_subdir( + entry: BorrowedFd<'_>, + stat: &Stat, + proc_stat: Option<&Stat>, +) -> io::Result<()> { + // We use `O_DIRECTORY` for proc directories, so open should fail if we + // don't get a directory when we expect one. + assert_eq!(FileType::from_raw_mode(stat.st_mode), FileType::Directory); + + check_proc_nonroot(stat, proc_stat)?; + + // Check that subdirectories of "/proc" are not mount points. + if is_mountpoint(entry) { + return Err(io::Errno::NOTSUP); + } + + Ok(()) +} + +fn check_proc_file(stat: &Stat, proc_stat: Option<&Stat>) -> io::Result<()> { + // Check that we have a regular file. + if FileType::from_raw_mode(stat.st_mode) != FileType::RegularFile { + return Err(io::Errno::NOTSUP); + } + + check_proc_nonroot(stat, proc_stat)?; + + Ok(()) +} + +fn check_proc_nonroot(stat: &Stat, proc_stat: Option<&Stat>) -> io::Result<()> { + // Check that we haven't been linked back to the root of "/proc". + if stat.st_ino == PROC_ROOT_INO { + return Err(io::Errno::NOTSUP); + } + + // Check that we're still in procfs. + if stat.st_dev != proc_stat.unwrap().st_dev { + return Err(io::Errno::NOTSUP); + } + + Ok(()) +} + +/// Check that `file` is opened on a `procfs` filesystem. +fn check_procfs(file: BorrowedFd<'_>) -> io::Result<()> { + let statfs = fstatfs(file)?; + let f_type = statfs.f_type; + if f_type != PROC_SUPER_MAGIC { + return Err(io::Errno::NOTSUP); + } + + Ok(()) +} + +/// Check whether the given directory handle is a mount point. We use a +/// `renameat` call that would otherwise fail, but which fails with `EXDEV` +/// first if it would cross a mount point. +fn is_mountpoint(file: BorrowedFd<'_>) -> bool { + let err = renameat(file, cstr!("../."), file, cstr!(".")).unwrap_err(); + match err { + io::Errno::XDEV => true, // the rename failed due to crossing a mount point + io::Errno::BUSY => false, // the rename failed normally + _ => panic!("Unexpected error from `renameat`: {:?}", err), + } +} + +/// Open a directory in `/proc`, mapping all errors to `io::Errno::NOTSUP`. +fn proc_opendirat(dirfd: Fd, path: P) -> io::Result { + // We could add `PATH`|`NOATIME` here but Linux 2.6.32 doesn't support it. + // Also for `NOATIME` see the comment in `open_and_check_file`. + let oflags = OFlags::NOFOLLOW | OFlags::DIRECTORY | OFlags::CLOEXEC | OFlags::NOCTTY; + openat(dirfd, path, oflags, Mode::empty()).map_err(|_err| io::Errno::NOTSUP) +} + +/// Returns a handle to Linux's `/proc` directory. +/// +/// This ensures that `/proc` is procfs, that nothing is mounted on top of it, +/// and that it looks normal. It also returns the `Stat` of `/proc`. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +fn proc() -> io::Result<(BorrowedFd<'static>, &'static Stat)> { + static PROC: StaticFd = StaticFd::new(); + + // `OnceBox` is "racey" in that the initialization function may run + // multiple times. We're ok with that, since the initialization function + // has no side effects. + PROC.get_or_try_init(|| { + // Open "/proc". + let proc = proc_opendirat(cwd(), cstr!("/proc"))?; + let proc_stat = + check_proc_entry(Kind::Proc, proc.as_fd(), None).map_err(|_err| io::Errno::NOTSUP)?; + + Ok(new_static_fd(proc, proc_stat)) + }) + .map(|(fd, stat)| (fd.as_fd(), stat)) +} + +/// Returns a handle to Linux's `/proc/self` directory. +/// +/// This ensures that `/proc/self` is procfs, that nothing is mounted on top of +/// it, and that it looks normal. It also returns the `Stat` of `/proc/self`. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +fn proc_self() -> io::Result<(BorrowedFd<'static>, &'static Stat)> { + static PROC_SELF: StaticFd = StaticFd::new(); + + // The init function here may run multiple times; see above. + PROC_SELF + .get_or_try_init(|| { + let (proc, proc_stat) = proc()?; + + let pid = getpid(); + + // Open "/proc/self". Use our pid to compute the name rather than literally + // using "self", as "self" is a symlink. + let proc_self = proc_opendirat(proc, DecInt::new(pid.as_raw_nonzero().get()))?; + let proc_self_stat = check_proc_entry(Kind::Pid, proc_self.as_fd(), Some(proc_stat)) + .map_err(|_err| io::Errno::NOTSUP)?; + + Ok(new_static_fd(proc_self, proc_self_stat)) + }) + .map(|(owned, stat)| (owned.as_fd(), stat)) +} + +/// Returns a handle to Linux's `/proc/self/fd` directory. +/// +/// This ensures that `/proc/self/fd` is `procfs`, that nothing is mounted on +/// top of it, and that it looks normal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +pub fn proc_self_fd() -> io::Result> { + static PROC_SELF_FD: StaticFd = StaticFd::new(); + + // The init function here may run multiple times; see above. + PROC_SELF_FD + .get_or_try_init(|| { + let (_, proc_stat) = proc()?; + + let (proc_self, _proc_self_stat) = proc_self()?; + + // Open "/proc/self/fd". + let proc_self_fd = proc_opendirat(proc_self, cstr!("fd"))?; + let proc_self_fd_stat = + check_proc_entry(Kind::Fd, proc_self_fd.as_fd(), Some(proc_stat)) + .map_err(|_err| io::Errno::NOTSUP)?; + + Ok(new_static_fd(proc_self_fd, proc_self_fd_stat)) + }) + .map(|(owned, _stat)| owned.as_fd()) +} + +type StaticFd = OnceCell<(OwnedFd, Stat)>; + +#[inline] +fn new_static_fd(fd: OwnedFd, stat: Stat) -> (OwnedFd, Stat) { + (fd, stat) +} + +/// Returns a handle to Linux's `/proc/self/fdinfo` directory. +/// +/// This ensures that `/proc/self/fdinfo` is `procfs`, that nothing is mounted +/// on top of it, and that it looks normal. It also returns the `Stat` of +/// `/proc/self/fd`. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +fn proc_self_fdinfo() -> io::Result<(BorrowedFd<'static>, &'static Stat)> { + static PROC_SELF_FDINFO: StaticFd = StaticFd::new(); + + PROC_SELF_FDINFO + .get_or_try_init(|| { + let (_, proc_stat) = proc()?; + + let (proc_self, _proc_self_stat) = proc_self()?; + + // Open "/proc/self/fdinfo". + let proc_self_fdinfo = proc_opendirat(proc_self, cstr!("fdinfo"))?; + let proc_self_fdinfo_stat = + check_proc_entry(Kind::Fd, proc_self_fdinfo.as_fd(), Some(proc_stat)) + .map_err(|_err| io::Errno::NOTSUP)?; + + Ok((proc_self_fdinfo, proc_self_fdinfo_stat)) + }) + .map(|(owned, stat)| (owned.as_fd(), stat)) +} + +/// Returns a handle to a Linux `/proc/self/fdinfo/` file. +/// +/// This ensures that `/proc/self/fdinfo/` is `procfs`, that nothing is +/// mounted on top of it, and that it looks normal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +#[inline] +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +pub fn proc_self_fdinfo_fd(fd: Fd) -> io::Result { + _proc_self_fdinfo(fd.as_fd()) +} + +fn _proc_self_fdinfo(fd: BorrowedFd<'_>) -> io::Result { + let (proc_self_fdinfo, proc_self_fdinfo_stat) = proc_self_fdinfo()?; + let fd_str = DecInt::from_fd(fd); + open_and_check_file(proc_self_fdinfo, proc_self_fdinfo_stat, fd_str.as_c_str()) +} + +/// Returns a handle to a Linux `/proc/self/pagemap` file. +/// +/// This ensures that `/proc/self/pagemap` is `procfs`, that nothing is +/// mounted on top of it, and that it looks normal. +/// +/// # References +/// - [Linux] +/// - [Linux pagemap] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +/// [Linux pagemap]: https://www.kernel.org/doc/Documentation/vm/pagemap.txt +#[inline] +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +pub fn proc_self_pagemap() -> io::Result { + proc_self_file(cstr!("pagemap")) +} + +/// Returns a handle to a Linux `/proc/self/maps` file. +/// +/// This ensures that `/proc/self/maps` is `procfs`, that nothing is +/// mounted on top of it, and that it looks normal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +#[inline] +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +pub fn proc_self_maps() -> io::Result { + proc_self_file(cstr!("maps")) +} + +/// Returns a handle to a Linux `/proc/self/status` file. +/// +/// This ensures that `/proc/self/status` is `procfs`, that nothing is +/// mounted on top of it, and that it looks normal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man5/proc.5.html +#[inline] +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +pub fn proc_self_status() -> io::Result { + proc_self_file(cstr!("status")) +} + +/// Open a file under `/proc/self`. +fn proc_self_file(name: &CStr) -> io::Result { + let (proc_self, proc_self_stat) = proc_self()?; + open_and_check_file(proc_self, proc_self_stat, name) +} + +/// Open a procfs file within in `dir` and check it for bind mounts. +fn open_and_check_file(dir: BorrowedFd, dir_stat: &Stat, name: &CStr) -> io::Result { + let (_, proc_stat) = proc()?; + + // Don't use `NOATIME`, because it [requires us to own the file], and when + // a process sets itself non-dumpable Linux changes the user:group of its + // `/proc/` files [to root:root]. + // + // [requires us to own the file]: https://man7.org/linux/man-pages/man2/openat.2.html + // [to root:root]: https://man7.org/linux/man-pages/man5/proc.5.html + let oflags = OFlags::RDONLY | OFlags::CLOEXEC | OFlags::NOFOLLOW | OFlags::NOCTTY; + let file = openat(dir, name, oflags, Mode::empty()).map_err(|_err| io::Errno::NOTSUP)?; + let file_stat = fstat(&file)?; + + // `is_mountpoint` only works on directory mount points, not file mount + // points. To detect file mount points, scan the parent directory to see + // if we can find a regular file with an inode and name that matches the + // file we just opened. If we can't find it, there could be a file bind + // mount on top of the file we want. + // + // As we scan, we also check for ".", to make sure it's the same directory + // as our original directory, to detect mount points, since + // `Dir::read_from` reopens ".". + // + // TODO: With Linux 5.8 we might be able to use `statx` and + // `STATX_ATTR_MOUNT_ROOT` to detect mountpoints directly instead of doing + // this scanning. + let dir = Dir::read_from(dir).map_err(|_err| io::Errno::NOTSUP)?; + + // Confirm that we got the same inode. + let dot_stat = dir.stat().map_err(|_err| io::Errno::NOTSUP)?; + if (dot_stat.st_dev, dot_stat.st_ino) != (dir_stat.st_dev, dir_stat.st_ino) { + return Err(io::Errno::NOTSUP); + } + + let mut found_file = false; + let mut found_dot = false; + for entry in dir { + let entry = entry.map_err(|_err| io::Errno::NOTSUP)?; + if entry.ino() == file_stat.st_ino + && entry.file_type() == FileType::RegularFile + && entry.file_name() == name + { + // We found the file. Proceed to check the file handle. + let _ = + check_proc_entry_with_stat(Kind::File, file.as_fd(), file_stat, Some(proc_stat))?; + + found_file = true; + } else if entry.ino() == dir_stat.st_ino + && entry.file_type() == FileType::Directory + && entry.file_name() == cstr!(".") + { + // We found ".", and it's the right ".". + found_dot = true; + } + } + + if found_file && found_dot { + Ok(file) + } else { + Err(io::Errno::NOTSUP) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/read_write.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/read_write.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/read_write.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/read_write.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,178 @@ +//! `read` and `write`, optionally positioned, optionally vectored + +use crate::{backend, io}; +use backend::fd::AsFd; + +// Declare `IoSlice` and `IoSliceMut`. +#[cfg(not(windows))] +#[cfg(not(feature = "std"))] +pub use backend::io::io_slice::{IoSlice, IoSliceMut}; +#[cfg(not(windows))] +#[cfg(feature = "std")] +pub use std::io::{IoSlice, IoSliceMut}; + +/// `RWF_*` constants for use with [`preadv2`] and [`pwritev2`]. +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use backend::io::types::ReadWriteFlags; + +/// `read(fd, buf)`—Reads from a stream. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn read(fd: Fd, buf: &mut [u8]) -> io::Result { + backend::io::syscalls::read(fd.as_fd(), buf) +} + +/// `write(fd, buf)`—Writes to a stream. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn write(fd: Fd, buf: &[u8]) -> io::Result { + backend::io::syscalls::write(fd.as_fd(), buf) +} + +/// `pread(fd, buf, offset)`—Reads from a file at a given position. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn pread(fd: Fd, buf: &mut [u8], offset: u64) -> io::Result { + backend::io::syscalls::pread(fd.as_fd(), buf, offset) +} + +/// `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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn pwrite(fd: Fd, buf: &[u8], offset: u64) -> io::Result { + backend::io::syscalls::pwrite(fd.as_fd(), buf, offset) +} + +/// `readv(fd, bufs)`—Reads from a stream into multiple buffers. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn readv(fd: Fd, bufs: &mut [IoSliceMut<'_>]) -> io::Result { + backend::io::syscalls::readv(fd.as_fd(), bufs) +} + +/// `writev(fd, bufs)`—Writes to a stream from multiple buffers. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +pub fn writev(fd: Fd, bufs: &[IoSlice<'_>]) -> io::Result { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/preadv.2.html +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "solaris")))] +#[inline] +pub fn preadv(fd: Fd, bufs: &mut [IoSliceMut<'_>], offset: u64) -> io::Result { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/pwritev.2.html +#[cfg(not(any(target_os = "haiku", target_os = "redox", target_os = "solaris")))] +#[inline] +pub fn pwritev(fd: Fd, bufs: &[IoSlice<'_>], offset: u64) -> io::Result { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/preadv2.2.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn preadv2( + fd: Fd, + bufs: &mut [IoSliceMut<'_>], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/pwritev2.2.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn pwritev2( + fd: Fd, + bufs: &[IoSlice<'_>], + offset: u64, + flags: ReadWriteFlags, +) -> io::Result { + backend::io::syscalls::pwritev2(fd.as_fd(), bufs, offset, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/seek_from.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/seek_from.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/seek_from.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/seek_from.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,30 @@ +//! 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`] trait. +#[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), +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/stdio.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/stdio.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io/stdio.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io/stdio.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,254 @@ +//! Functions returning the stdio file descriptors. +//! +//! # Safety +//! +//! These access the file descriptors by absolute index value, and nothing +//! prevents them from being closed and reused. They should only be used in +//! `main` or other situations where one is in control of the process' +//! stdio streams. +#![allow(unsafe_code)] + +use crate::backend; +use crate::fd::OwnedFd; +use backend::fd::{BorrowedFd, FromRawFd, RawFd}; + +/// `STDIN_FILENO`—Standard input, borrowed. +/// +/// # Safety +/// +/// This function must be called from code which knows how the process' +/// standard input is being used. Often, this will be the `main` function or +/// code that knows its relationship with the `main` function. +/// +/// The stdin file descriptor can be closed, potentially on other threads, in +/// which case the file descriptor index value could be dynamically reused for +/// other purposes, potentially on different threads. +/// +/// # Other hazards +/// +/// Stdin could be redirected from arbitrary input sources, and unless one +/// knows how the process' standard input is being used, one could consume +/// bytes that are expected to be consumed by other parts of the process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdin.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html +#[doc(alias = "STDIN_FILENO")] +#[inline] +pub const unsafe fn stdin() -> BorrowedFd<'static> { + BorrowedFd::borrow_raw(backend::io::types::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 +/// +/// This is unsafe for the same reasons as [`stdin`]. +/// +/// # Other hazards +/// +/// This has the same hazards as [`stdin`]. +/// +/// And, when the `OwnedFd` is dropped, subsequent newly created file +/// descriptors may unknowingly reuse the stdin 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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdin.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html +#[doc(alias = "STDIN_FILENO")] +#[inline] +pub unsafe fn take_stdin() -> OwnedFd { + backend::fd::OwnedFd::from_raw_fd(backend::io::types::STDIN_FILENO as RawFd) +} + +/// `STDOUT_FILENO`—Standard output, borrowed. +/// +/// # Safety +/// +/// This function must be called from code which knows how the process' +/// standard output is being used. Often, this will be the `main` function or +/// code that knows its relationship with the `main` function. +/// +/// The stdout file descriptor can be closed, potentially on other threads, in +/// which case the file descriptor index value could be dynamically reused for +/// other purposes, potentially on different threads. +/// +/// # Other hazards +/// +/// Stdout could be redirected to arbitrary output sinks, and unless one +/// knows how the process' standard output is being used, one could +/// unexpectedly inject bytes into a stream being written by another part of +/// the process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdout.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html +#[doc(alias = "STDOUT_FILENO")] +#[inline] +pub const unsafe fn stdout() -> BorrowedFd<'static> { + BorrowedFd::borrow_raw(backend::io::types::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 +/// +/// This is unsafe for the same reasons as [`stdout`]. +/// +/// # Other hazards +/// +/// This has the same hazards as [`stdout`]. +/// +/// And, when the `OwnedFd` is dropped, subsequent newly created file +/// descriptors may unknowingly reuse the stdout 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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdout.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html +#[doc(alias = "STDOUT_FILENO")] +#[inline] +pub unsafe fn take_stdout() -> OwnedFd { + backend::fd::OwnedFd::from_raw_fd(backend::io::types::STDOUT_FILENO as RawFd) +} + +/// `STDERR_FILENO`—Standard error, borrowed. +/// +/// # Safety +/// +/// This function must be called from code which knows how the process' +/// standard error is being used. Often, this will be the `main` function or +/// code that knows its relationship with the `main` function. +/// +/// The stderr file descriptor can be closed, potentially on other threads, in +/// which case the file descriptor index value could be dynamically reused for +/// other purposes, potentially on different threads. +/// +/// # Other hazards +/// +/// Stderr could be redirected to arbitrary output sinks, and unless one +/// knows how the process' standard error is being used, one could unexpectedly +/// inject bytes into a stream being written by another part of the process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stderr.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html +#[doc(alias = "STDERR_FILENO")] +#[inline] +pub const unsafe fn stderr() -> BorrowedFd<'static> { + BorrowedFd::borrow_raw(backend::io::types::STDERR_FILENO as RawFd) +} + +/// `STDERR_FILENO`—Standard error, owned. +/// +/// This is similar to [`stdout`], however it returns an `OwnedFd` which closes +/// standard output when it is dropped. +/// +/// # Safety +/// +/// This is unsafe for the same reasons as [`stderr`]. +/// +/// # 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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stderr.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html +#[doc(alias = "STDERR_FILENO")] +#[inline] +pub unsafe fn take_stderr() -> OwnedFd { + backend::fd::OwnedFd::from_raw_fd(backend::io::types::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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdin.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdin.3.html +#[doc(alias = "STDIN_FILENO")] +#[inline] +pub const fn raw_stdin() -> RawFd { + backend::io::types::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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stdout.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stdout.3.html +#[doc(alias = "STDOUT_FILENO")] +#[inline] +pub const fn raw_stdout() -> RawFd { + backend::io::types::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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/stderr.html +/// [Linux]: https://man7.org/linux/man-pages/man3/stderr.3.html +#[doc(alias = "STDERR_FILENO")] +#[inline] +pub const fn raw_stderr() -> RawFd { + backend::io::types::STDERR_FILENO as RawFd +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io_uring.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io_uring.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/io_uring.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/io_uring.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1146 @@ +//! 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. +//! +//! # 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] +//! +//! [Linux]: https://man.archlinux.org/man/io_uring.7.en +//! [io_uring]: https://en.wikipedia.org/wiki/Io_uring +#![allow(unsafe_code)] + +use crate::fd::{AsFd, BorrowedFd, OwnedFd, RawFd}; +use crate::{backend, io}; +use core::ffi::c_void; +use core::ptr::null_mut; +use linux_raw_sys::general as sys; + +/// `io_uring_setup(entries, params)`—Setup a context for performing +/// asynchronous I/O. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man.archlinux.org/man/io_uring_setup.2.en +#[inline] +pub fn io_uring_setup(entries: u32, params: &mut io_uring_params) -> io::Result { + 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. +/// +/// # 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://man.archlinux.org/man/io_uring_register.2.en +#[inline] +pub unsafe fn io_uring_register( + fd: Fd, + opcode: IoringRegisterOp, + arg: *const c_void, + nr_args: u32, +) -> io::Result<()> { + backend::io_uring::syscalls::io_uring_register(fd.as_fd(), opcode, arg, nr_args) +} + +/// `io_uring_enter(fd, to_submit, min_complete, flags, arg, size)`—Initiate +/// and/or complete 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://man.archlinux.org/man/io_uring_enter.2.en +#[inline] +pub unsafe fn io_uring_enter( + fd: Fd, + to_submit: u32, + min_complete: u32, + flags: IoringEnterFlags, + arg: *const c_void, + size: usize, +) -> io::Result { + backend::io_uring::syscalls::io_uring_enter( + fd.as_fd(), + to_submit, + min_complete, + flags, + arg, + size, + ) +} + +bitflags::bitflags! { + /// `IORING_ENTER_*` flags for use with [`io_uring_enter`]. + #[derive(Default)] + 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` + const EXT_ARG = sys::IORING_ENTER_EXT_ARG; + } +} + +/// `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::IORING_REGISTER_BUFFERS as _, + + /// `IORING_UNREGISTER_BUFFERS` + UnregisterBuffers = sys::IORING_UNREGISTER_BUFFERS as _, + + /// `IORING_REGISTER_FILES` + RegisterFiles = sys::IORING_REGISTER_FILES as _, + + /// `IORING_UNREGISTER_FILES` + UnregisterFiles = sys::IORING_UNREGISTER_FILES as _, + + /// `IORING_REGISTER_EVENTFD` + RegisterEventfd = sys::IORING_REGISTER_EVENTFD as _, + + /// `IORING_UNREGISTER_EVENTFD` + UnregisterEventfd = sys::IORING_UNREGISTER_EVENTFD as _, + + /// `IORING_REGISTER_FILES_UPDATE` + RegisterFilesUpdate = sys::IORING_REGISTER_FILES_UPDATE as _, + + /// `IORING_REGISTER_EVENTFD_ASYNC` + RegisterEventfdAsync = sys::IORING_REGISTER_EVENTFD_ASYNC as _, + + /// `IORING_REGISTER_PROBE` + RegisterProbe = sys::IORING_REGISTER_PROBE as _, + + /// `IORING_REGISTER_PERSONALITY` + RegisterPersonality = sys::IORING_REGISTER_PERSONALITY as _, + + /// `IORING_UNREGISTER_PERSONALITY` + UnregisterPersonality = sys::IORING_UNREGISTER_PERSONALITY as _, + + /// `IORING_REGISTER_RESTRICTIONS` + RegisterRestrictions = sys::IORING_REGISTER_RESTRICTIONS as _, + + /// `IORING_REGISTER_ENABLE_RINGS` + RegisterEnableRings = sys::IORING_REGISTER_ENABLE_RINGS as _, + + /// `IORING_REGISTER_BUFFERS2` + RegisterBuffers2 = sys::IORING_REGISTER_BUFFERS2 as _, + + /// `IORING_REGISTER_BUFFERS_UPDATE` + RegisterBuffersUpdate = sys::IORING_REGISTER_BUFFERS_UPDATE as _, + + /// `IORING_REGISTER_FILES2` + RegisterFiles2 = sys::IORING_REGISTER_FILES2 as _, + + /// `IORING_REGISTER_FILES_SKIP` + RegisterFilesSkip = sys::IORING_REGISTER_FILES_SKIP as _, + + /// `IORING_REGISTER_FILES_UPDATE2` + RegisterFilesUpdate2 = sys::IORING_REGISTER_FILES_UPDATE2 as _, + + /// `IORING_REGISTER_IOWQ_AFF` + RegisterIowqAff = sys::IORING_REGISTER_IOWQ_AFF as _, + + /// `IORING_UNREGISTER_IOWQ_AFF` + UnregisterIowqAff = sys::IORING_UNREGISTER_IOWQ_AFF as _, + + /// `IORING_REGISTER_IOWQ_MAX_WORKERS` + RegisterIowqMaxWorkers = sys::IORING_REGISTER_IOWQ_MAX_WORKERS as _, +} + +/// `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::IORING_OP_NOP as _, + + /// `IORING_OP_ACCEPT` + Accept = sys::IORING_OP_ACCEPT as _, + + /// `IORING_OP_ASYNC_CANCEL` + AsyncCancel = sys::IORING_OP_ASYNC_CANCEL as _, + + /// `IORING_OP_CLOSE` + Close = sys::IORING_OP_CLOSE as _, + + /// `IORING_OP_CONNECT` + Connect = sys::IORING_OP_CONNECT as _, + + /// `IORING_OP_EPOLL_CTL` + EpollCtl = sys::IORING_OP_EPOLL_CTL as _, + + /// `IORING_OP_FADVISE` + Fadvise = sys::IORING_OP_FADVISE as _, + + /// `IORING_OP_FALLOCATE` + Fallocate = sys::IORING_OP_FALLOCATE as _, + + /// `IORING_OP_FILES_UPDATE` + FilesUpdate = sys::IORING_OP_FILES_UPDATE as _, + + /// `IORING_OP_FSYNC` + Fsync = sys::IORING_OP_FSYNC as _, + + /// `IORING_OP_LINKAT` + Linkat = sys::IORING_OP_LINKAT as _, + + /// `IORING_OP_LINK_TIMEOUT` + LinkTimeout = sys::IORING_OP_LINK_TIMEOUT as _, + + /// `IORING_OP_MADVISE` + Madvise = sys::IORING_OP_MADVISE as _, + + /// `IORING_OP_MKDIRAT` + Mkdirat = sys::IORING_OP_MKDIRAT as _, + + /// `IORING_OP_OPENAT` + Openat = sys::IORING_OP_OPENAT as _, + + /// `IORING_OP_OPENAT2` + Openat2 = sys::IORING_OP_OPENAT2 as _, + + /// `IORING_OP_POLL_ADD` + PollAdd = sys::IORING_OP_POLL_ADD as _, + + /// `IORING_OP_POLL_REMOVE` + PollRemove = sys::IORING_OP_POLL_REMOVE as _, + + /// `IORING_OP_PROVIDE_BUFFERS` + ProvideBuffers = sys::IORING_OP_PROVIDE_BUFFERS as _, + + /// `IORING_OP_READ` + Read = sys::IORING_OP_READ as _, + + /// `IORING_OP_READV` + Readv = sys::IORING_OP_READV as _, + + /// `IORING_OP_READ_FIXED` + ReadFixed = sys::IORING_OP_READ_FIXED as _, + + /// `IORING_OP_RECV` + Recv = sys::IORING_OP_RECV as _, + + /// `IORING_OP_RECVMSG` + Recvmsg = sys::IORING_OP_RECVMSG as _, + + /// `IORING_OP_REMOVE_BUFFERS` + RemoveBuffers = sys::IORING_OP_REMOVE_BUFFERS as _, + + /// `IORING_OP_RENAMEAT` + Renameat = sys::IORING_OP_RENAMEAT as _, + + /// `IORING_OP_SEND` + Send = sys::IORING_OP_SEND as _, + + /// `IORING_OP_SENDMSG` + Sendmsg = sys::IORING_OP_SENDMSG as _, + + /// `IORING_OP_SHUTDOWN` + Shutdown = sys::IORING_OP_SHUTDOWN as _, + + /// `IORING_OP_SPLICE` + Splice = sys::IORING_OP_SPLICE as _, + + /// `IORING_OP_STATX` + Statx = sys::IORING_OP_STATX as _, + + /// `IORING_OP_SYMLINKAT` + Symlinkat = sys::IORING_OP_SYMLINKAT as _, + + /// `IORING_OP_SYNC_FILE_RANGE` + SyncFileRange = sys::IORING_OP_SYNC_FILE_RANGE as _, + + /// `IORING_OP_TEE` + Tee = sys::IORING_OP_TEE as _, + + /// `IORING_OP_TIMEOUT` + Timeout = sys::IORING_OP_TIMEOUT as _, + + /// `IORING_OP_TIMEOUT_REMOVE` + TimeoutRemove = sys::IORING_OP_TIMEOUT_REMOVE as _, + + /// `IORING_OP_UNLINKAT` + Unlinkat = sys::IORING_OP_UNLINKAT as _, + + /// `IORING_OP_WRITE` + Write = sys::IORING_OP_WRITE as _, + + /// `IORING_OP_WRITEV` + Writev = sys::IORING_OP_WRITEV as _, + + /// `IORING_OP_WRITE_FIXED` + WriteFixed = sys::IORING_OP_WRITE_FIXED 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::IORING_RESTRICTION_REGISTER_OP as _, + + /// `IORING_RESTRICTION_SQE_FLAGS_ALLOWED` + SqeFlagsAllowed = sys::IORING_RESTRICTION_SQE_FLAGS_ALLOWED as _, + + /// `IORING_RESTRICTION_SQE_FLAGS_REQUIRED` + SqeFlagsRequired = sys::IORING_RESTRICTION_SQE_FLAGS_REQUIRED as _, + + /// `IORING_RESTRICTION_SQE_OP` + SqeOp = sys::IORING_RESTRICTION_SQE_OP as _, +} + +impl Default for IoringRestrictionOp { + #[inline] + fn default() -> Self { + Self::RegisterOp + } +} + +bitflags::bitflags! { + /// `IORING_SETUP_*` flags for use with [`io_uring_params`]. + #[derive(Default)] + 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; + } +} + +bitflags::bitflags! { + /// `IOSQE_*` flags for use with [`io_uring_sqe`]. + #[derive(Default)] + pub struct IoringSqeFlags: u8 { + /// `1 << IOSQE_ASYNC_BIT` + const ASYNC = 1 << sys::IOSQE_ASYNC_BIT as u8; + + /// `1 << IOSQE_BUFFER_SELECT_BIT` + const BUFFER_SELECT = 1 << sys::IOSQE_BUFFER_SELECT_BIT as u8; + + /// `1 << IOSQE_FIXED_FILE_BIT` + const FIXED_FILE = 1 << sys::IOSQE_FIXED_FILE_BIT as u8; + + /// 1 << `IOSQE_IO_DRAIN_BIT` + const IO_DRAIN = 1 << sys::IOSQE_IO_DRAIN_BIT as u8; + + /// `1 << IOSQE_IO_HARDLINK_BIT` + const IO_HARDLINK = 1 << sys::IOSQE_IO_HARDLINK_BIT as u8; + + /// `1 << IOSQE_IO_LINK_BIT` + const IO_LINK = 1 << sys::IOSQE_IO_LINK_BIT as u8; + } +} + +bitflags::bitflags! { + /// `IORING_CQE_F_*` flags for use with [`io_uring_cqe`]. + #[derive(Default)] + pub struct IoringCqeFlags: u32 { + /// `IORING_CQE_F_BUFFER` + const BUFFER = sys::IORING_CQE_F_BUFFER as _; + + /// `IORING_CQE_F_MORE` + const MORE = sys::IORING_CQE_F_MORE as _; + } +} + +bitflags::bitflags! { + /// `IORING_FSYNC_*` flags for use with [`io_uring_sqe`]. + #[derive(Default)] + pub struct IoringFsyncFlags: u32 { + /// `IORING_FSYNC_DATASYNC` + const DATASYNC = sys::IORING_FSYNC_DATASYNC; + } +} + +bitflags::bitflags! { + /// `IORING_TIMEOUT_*` and `IORING_LINK_TIMEOUT_UPDATE` flags for use with + /// [`io_uring_sqe`]. + #[derive(Default)] + 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; + } +} + +bitflags::bitflags! { + /// `SPLICE_F_*` flags for use with [`io_uring_sqe`]. + #[derive(Default)] + pub struct SpliceFlags: u32 { + /// `SPLICE_F_FD_IN_FIXED` + const FD_IN_FIXED = sys::SPLICE_F_FD_IN_FIXED; + } +} + +bitflags::bitflags! { + /// `IORING_FEAT_*` flags for use with [`io_uring_params`]. + #[derive(Default)] + 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; + } +} + +bitflags::bitflags! { + /// `IO_URING_OP_*` flags for use with [`io_uring_probe_op`]. + #[derive(Default)] + pub struct IoringOpFlags: u16 { + /// `IO_URING_OP_SUPPORTED` + const SUPPORTED = sys::IO_URING_OP_SUPPORTED as _; + } +} + +bitflags::bitflags! { + /// `IORING_SQ_*` flags. + #[derive(Default)] + 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; + } +} + +bitflags::bitflags! { + /// `IORING_CQ_*` flags. + #[derive(Default)] + pub struct IoringCqFlags: u32 { + /// `IORING_CQ_EVENTFD_DISABLED` + const EVENTFD_DISABLED = sys::IORING_CQ_EVENTFD_DISABLED; + } +} + +bitflags::bitflags! { + /// `IORING_POLL_*` flags. + #[derive(Default)] + 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; + } +} + +#[allow(missing_docs)] +pub const IORING_CQE_BUFFER_SHIFT: u32 = sys::IORING_CQE_BUFFER_SHIFT 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` +#[inline] +#[doc(alias = "IORING_REGISTER_FILES_SKIP")] +pub const fn io_uring_register_files_skip() -> BorrowedFd<'static> { + let files_skip = sys::IORING_REGISTER_FILES_SKIP as RawFd; + + // Safety: `IORING_REGISTER_FILES_SKIP` is a reserved value that is never + // dynamically allocated, so it'll remain valid for the duration of + // `'static`. + unsafe { BorrowedFd::<'static>::borrow_raw(files_skip) } +} + +/// 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)] +#[derive(Copy, Clone)] +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 From<*mut c_void> for io_uring_ptr { + #[inline] + fn from(ptr: *mut c_void) -> Self { + Self { + ptr, + + #[cfg(target_pointer_width = "16")] + __pad16: Default::default(), + #[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))] + __pad32: Default::default(), + } + } +} + +impl Default for io_uring_ptr { + #[inline] + fn default() -> Self { + Self::from(null_mut()) + } +} + +/// 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 { + /// Return the `u64` value. + #[inline] + pub 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 fn from_u64(u64_: u64) -> Self { + Self { u64_ } + } + + /// Return the `ptr` pointer value. + #[inline] + pub 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 fn from_ptr(ptr: *mut c_void) -> Self { + Self { + ptr: io_uring_ptr::from(ptr), + } + } +} + +impl Default for io_uring_user_data { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl core::fmt::Debug for io_uring_user_data { + fn fmt(&self, fmt: &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(fmt) } + } +} + +/// 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: u16, + 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: u32, + 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: splice_fd_in_or_file_index_union, + pub __pad2: [u64; 2], +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Copy, Clone)] +pub union off_or_addr2_union { + pub off: u64, + pub addr2: io_uring_ptr, +} + +#[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, +} + +#[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: crate::net::SendFlags, + /// `msg_flags` is split into `send_flags` and `recv_flags`. + #[doc(alias = "msg_flags")] + pub recv_flags: crate::net::RecvFlags, + pub timeout_flags: IoringTimeoutFlags, + pub accept_flags: crate::net::AcceptFlags, + pub cancel_flags: u32, + pub open_flags: crate::fs::AtFlags, + pub statx_flags: crate::fs::AtFlags, + pub fadvise_advice: crate::fs::Advice, + pub splice_flags: SpliceFlags, + pub rename_flags: crate::fs::RenameFlags, + pub unlink_flags: crate::fs::AtFlags, + pub hardlink_flags: crate::fs::AtFlags, +} + +#[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_union { + pub splice_fd_in: i32, + pub file_index: u32, +} + +/// An io_uring Completion Queue Entry. +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_cqe { + pub user_data: io_uring_user_data, + pub res: i32, + pub flags: IoringCqeFlags, +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Copy, Clone, Default)] +pub struct io_uring_restriction { + pub opcode: IoringRestrictionOp, + pub register_or_sqe_op_or_sqe_flags: register_or_sqe_op_or_sqe_flags_union, + pub resv: u8, + 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)] +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: u32, + 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)] +pub struct io_sqring_offsets { + pub head: u32, + pub tail: u32, + pub ring_mask: u32, + pub ring_entries: u32, + pub flags: u32, + pub dropped: u32, + pub array: u32, + pub resv1: u32, + pub resv2: u64, +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_cqring_offsets { + pub head: u32, + pub tail: u32, + pub ring_mask: u32, + pub ring_entries: u32, + pub overflow: u32, + pub cqes: u32, + pub flags: u32, + pub resv1: u32, + pub resv2: u64, +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Default)] +pub struct io_uring_probe { + pub last_op: IoringOp, + pub ops_len: u8, + pub resv: u16, + pub resv2: [u32; 3], + pub ops: sys::__IncompleteArrayField, +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_probe_op { + pub op: IoringOp, + pub resv: u8, + pub flags: IoringOpFlags, + pub resv2: u32, +} + +#[allow(missing_docs)] +#[repr(C, align(8))] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_files_update { + pub offset: u32, + pub resv: u32, + pub fds: u64, +} + +#[allow(missing_docs)] +#[repr(C, align(8))] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_rsrc_register { + pub nr: u32, + pub resv: u32, + pub resv2: u64, + pub data: u64, + pub tags: u64, +} + +#[allow(missing_docs)] +#[repr(C, align(8))] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_rsrc_update { + pub offset: u32, + pub resv: u32, + pub data: u64, +} + +#[allow(missing_docs)] +#[repr(C, align(8))] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_rsrc_update2 { + pub offset: u32, + pub resv: u32, + pub data: u64, + pub tags: u64, + pub nr: u32, + pub resv2: u32, +} + +#[allow(missing_docs)] +#[repr(C)] +#[derive(Debug, Copy, Clone, Default)] +pub struct io_uring_getevents_arg { + pub sigmask: u64, + pub sigmask_sz: u32, + pub pad: u32, + pub ts: u64, +} + +#[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)] +pub struct open_how { + /// An [`OFlags`] value represented as a `u64`. + /// + /// [`OFlags`]: crate::fs::OFlags + pub flags: u64, + + /// A [`Mode`] value represented as a `u64`. + /// + /// [`Mode`]: crate::fs::Mode + pub mode: u64, + + pub resolve: crate::fs::ResolveFlags, +} + +impl Default for off_or_addr2_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl Default for addr_or_splice_off_in_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl Default for op_flags_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl Default for buf_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl Default for splice_fd_in_or_file_index_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +impl Default for register_or_sqe_op_or_sqe_flags_union { + #[inline] + fn default() -> Self { + let mut s = ::core::mem::MaybeUninit::::uninit(); + // Safety: All of Linux's io_uring structs may be zero-initialized. + unsafe { + ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); + s.assume_init() + } + } +} + +/// Check that our custom structs and unions have the same layout as the +/// kernel's versions. +#[test] +fn io_uring_layouts() { + use core::mem::{align_of, size_of}; + use memoffset::{offset_of, span_of}; + + // Check that the size and alignment of a type match the `sys` bindings. + macro_rules! check_type { + ($struct:ident) => { + assert_eq!( + (size_of::<$struct>(), align_of::<$struct>()), + (size_of::(), align_of::()) + ); + }; + } + + // The same as `check_type`, but for unions we've renamed to avoid having + // types like "bindgen_ty_1" in the API. + macro_rules! check_renamed_union { + ($to:ident, $from:ident) => { + assert_eq!( + (size_of::<$to>(), align_of::<$to>()), + (size_of::(), align_of::()) + ); + }; + } + + // 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) => { + assert_eq!( + offset_of!($struct, $field), + offset_of!(sys::$struct, $field) + ); + assert_eq!(span_of!($struct, $field), span_of!(sys::$struct, $field)); + }; + } + + // The same as `check_struct_field`, but for unions we've renamed to avoid + // having types like "bindgen_ty_1" in the API. + macro_rules! check_struct_renamed_union_field { + ($struct:ident, $to:ident, $from:ident) => { + assert_eq!(offset_of!($struct, $to), offset_of!(sys::$struct, $from)); + assert_eq!(span_of!($struct, $to), span_of!(sys::$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. + let _test = $name { + // Safety: All of io_uring's types can be zero-initialized. + $($field: unsafe { core::mem::zeroed() }),* + }; + + // Check that the fields have the right sizes and offsets. + $(check_struct_field!($name, $field));* + }; + } + + check_renamed_union!(off_or_addr2_union, io_uring_sqe__bindgen_ty_1); + check_renamed_union!(addr_or_splice_off_in_union, io_uring_sqe__bindgen_ty_2); + check_renamed_union!(op_flags_union, io_uring_sqe__bindgen_ty_3); + check_renamed_union!(buf_union, io_uring_sqe__bindgen_ty_4); + check_renamed_union!(splice_fd_in_or_file_index_union, io_uring_sqe__bindgen_ty_5); + check_renamed_union!( + register_or_sqe_op_or_sqe_flags_union, + io_uring_restriction__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_union_field!(io_uring_sqe, off_or_addr2, __bindgen_anon_1); + check_struct_renamed_union_field!(io_uring_sqe, addr_or_splice_off_in, __bindgen_anon_2); + check_struct_field!(io_uring_sqe, len); + check_struct_renamed_union_field!(io_uring_sqe, op_flags, __bindgen_anon_3); + check_struct_field!(io_uring_sqe, user_data); + check_struct_renamed_union_field!(io_uring_sqe, buf, __bindgen_anon_4); + check_struct_field!(io_uring_sqe, personality); + check_struct_renamed_union_field!(io_uring_sqe, splice_fd_in_or_file_index, __bindgen_anon_5); + check_struct_field!(io_uring_sqe, __pad2); + + check_type!(io_uring_restriction); + check_struct_field!(io_uring_restriction, opcode); + check_struct_renamed_union_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); + 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, + resv2 + ); + check_struct!( + io_cqring_offsets, + head, + tail, + ring_mask, + ring_entries, + overflow, + cqes, + flags, + resv1, + resv2 + ); + 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, resv, 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, pad, ts); + check_struct!(iovec, iov_base, iov_len); + check_struct!(open_how, flags, mode, resolve); +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/lib.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,226 @@ +//! `rustix` provides efficient memory-safe and [I/O-safe] wrappers to +//! POSIX-like, Unix-like, Linux, and Winsock2 syscall-like APIs, with +//! configurable backends. +//! +//! With rustix, you can write code like this: +//! +//! ```rust +//! # #[cfg(feature = "net")] +//! # fn read(sock: std::net::TcpStream, buf: &mut [u8]) -> std::io::Result<()> { +//! # use rustix::net::RecvFlags; +//! let nread: usize = rustix::net::recv(&sock, buf, RecvFlags::PEEK)?; +//! # let _ = nread; +//! # Ok(()) +//! # } +//! ``` +//! +//! instead of like this: +//! +//! ```rust +//! # #[cfg(feature = "net")] +//! # fn read(sock: std::net::TcpStream, buf: &mut [u8]) -> std::io::Result<()> { +//! # use std::convert::TryInto; +//! # #[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: usize = 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. +//! - Multiplexed functions (eg. `fcntl`, `ioctl`, etc.) are de-multiplexed. +//! - Variadic functions (eg. `openat`, etc.) are presented as non-variadic. +//! - Functions and types which need `l` prefixes or `64` suffixes to enable +//! large-file support are used automatically, and file sizes and offsets +//! are 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. +//! +//! Things they don't do include: +//! - Detecting whether functions are supported at runtime. +//! - 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 +//! [`getrandom`]: https://crates.io/crates/getrandom +//! [`bitflags`]: https://crates.io/crates/bitflags +//! [`AsFd`]: https://doc.rust-lang.org/stable/std/os/unix/io/trait.AsFd.html +//! [`OwnedFd`]: https://docs.rs/io-lifetimes/latest/io_lifetimes/struct.OwnedFd.html +//! [io-lifetimes crate]: https://crates.io/crates/io-lifetimes +//! [I/O-safe]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md +//! [`Result`]: https://docs.rs/rustix/latest/rustix/io/type.Result.html +//! [`Arg`]: https://docs.rs/rustix/latest/rustix/path/trait.Arg.html + +#![deny(missing_docs)] +#![allow(stable_features)] +#![cfg_attr(linux_raw, deny(unsafe_code))] +#![cfg_attr(rustc_attrs, feature(rustc_attrs))] +#![cfg_attr(doc_cfg, feature(doc_cfg))] +#![cfg_attr(all(target_os = "wasi", feature = "std"), feature(wasi_ext))] +#![cfg_attr( + all(linux_raw, naked_functions, target_arch = "x86"), + feature(naked_functions) +)] +#![cfg_attr(io_lifetimes_use_std, feature(io_safety))] +#![cfg_attr(core_ffi_c, feature(core_ffi_c))] +#![cfg_attr(core_c_str, feature(core_c_str))] +#![cfg_attr(alloc_c_string, feature(alloc_ffi))] +#![cfg_attr(alloc_c_string, feature(alloc_c_string))] +#![cfg_attr(not(feature = "std"), no_std)] +#![cfg_attr(feature = "rustc-dep-of-std", feature(core_intrinsics))] +#![cfg_attr(feature = "rustc-dep-of-std", feature(ip))] +#![cfg_attr( + all(not(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))] +// Clamp depends on Rust 1.50 which is newer than our MSRV. +#![allow(clippy::manual_clamp)] +// 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)] + +#[cfg(not(feature = "rustc-dep-of-std"))] +extern crate alloc; + +// Internal utilities. +#[cfg(not(windows))] +#[macro_use] +pub(crate) mod cstr; +#[macro_use] +pub(crate) mod const_assert; +pub(crate) mod utils; + +// 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. +/// +/// Users can use this to avoid needing to import anything else to use the same +/// versions of these types and traits. +pub mod fd { + use super::backend; + #[cfg(windows)] + pub use backend::fd::AsSocket; + pub use backend::fd::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; +} + +// The public API modules. +#[cfg(not(windows))] +pub mod ffi; +#[cfg(not(windows))] +#[cfg(feature = "fs")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "fs")))] +pub mod fs; +pub mod io; +#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg(feature = "io_uring")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "io_uring")))] +pub mod io_uring; +#[cfg(not(any(windows, target_os = "wasi")))] +#[cfg(feature = "mm")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "mm")))] +pub mod mm; +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +#[cfg(feature = "net")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "net")))] +pub mod net; +#[cfg(not(windows))] +#[cfg(feature = "param")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "param")))] +pub mod param; +#[cfg(not(windows))] +#[cfg(any(feature = "fs", feature = "net"))] +#[cfg_attr(doc_cfg, doc(cfg(any(feature = "fs", feature = "net"))))] +pub mod path; +#[cfg(not(windows))] +#[cfg(feature = "process")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "process")))] +pub mod process; +#[cfg(not(windows))] +#[cfg(feature = "rand")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "rand")))] +pub mod rand; +#[cfg(not(windows))] +#[cfg(feature = "termios")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "termios")))] +pub mod termios; +#[cfg(not(windows))] +#[cfg(feature = "thread")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "thread")))] +pub mod thread; +#[cfg(not(windows))] +#[cfg(feature = "time")] +#[cfg_attr(doc_cfg, 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")] +#[doc(hidden)] +#[cfg_attr(doc_cfg, doc(cfg(feature = "runtime")))] +pub mod runtime; + +// We have some internal interdependencies in the API features, so for now, +// for API features that aren't enabled, declare them as `pub(crate)` so +// that they're not public, but still available for internal use. + +#[cfg(not(windows))] +#[cfg(all( + not(feature = "param"), + any(feature = "runtime", feature = "time", target_arch = "x86"), +))] +pub(crate) mod param; +#[cfg(not(windows))] +#[cfg(not(any(feature = "fs", feature = "net")))] +pub(crate) mod path; +#[cfg(not(windows))] +#[cfg(not(feature = "process"))] +pub(crate) mod process; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/madvise.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/madvise.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/madvise.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/madvise.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,35 @@ +//! 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`] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mmap.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mmap.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mmap.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mmap.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,231 @@ +//! The `mmap` API. +//! +//! # Safety +//! +//! `mmap` and related functions manipulate raw pointers and have special +//! semantics and are wildly unsafe. +#![allow(unsafe_code)] + +use crate::{backend, io}; +use backend::fd::AsFd; +use core::ffi::c_void; + +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use backend::mm::types::MlockFlags; +#[cfg(any(linux_raw, all(libc, target_os = "linux")))] +pub use backend::mm::types::MremapFlags; +pub use backend::mm::types::{MapFlags, MprotectFlags, ProtFlags}; + +/// `mmap(ptr, len, prot, flags, fd, offset)`—Create a file-backed memory +/// mapping. +/// +/// For anonymous mappings (`MAP_ANON`/`MAP_ANONYMOUS`), see +/// [`mmap_anonymous`]. +/// +/// # Safety +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mmap.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mmap.2.html +#[inline] +pub unsafe fn mmap( + 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 +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mmap.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mmap.2.html +#[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)` +/// +/// # Safety +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/munmap.html +/// [Linux]: https://man7.org/linux/man-pages/man2/munmap.2.html +#[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 +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mremap.2.html +#[cfg(any(linux_raw, all(libc, 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 +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mremap.2.html +#[cfg(any(linux_raw, all(libc, 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)` +/// +/// # Safety +/// +/// Raw pointers and lots of special semantics. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mprotect.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mprotect.2.html +#[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. +/// +/// # Safety +/// +/// This function operates on raw pointers, but it should only be used on +/// memory which the caller owns. Technically, locking memory shouldn't violate +/// any invariants, but since unlocking it can violate invariants, this +/// function is also unsafe for symmetry. +/// +/// 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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/mlock.html +/// [Linux]: https://man7.org/linux/man-pages/man2/mlock.2.html +#[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. +/// +/// # Safety +/// +/// This function operates on raw pointers, but it should only be used on +/// memory which the caller owns. Technically, locking memory shouldn't violate +/// any invariants, but since unlocking it can violate invariants, this +/// function is also unsafe for symmetry. +/// +/// 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. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/mlock2.2.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[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. +/// +/// # Safety +/// +/// This function operates on raw pointers, but it should only be used on +/// memory which the caller owns, to avoid compromising the `mlock` invariants +/// of other unrelated code in the process. +/// +/// 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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/munlock.html +/// [Linux]: https://man7.org/linux/man-pages/man2/munlock.2.html +#[inline] +pub unsafe fn munlock(ptr: *mut c_void, len: usize) -> io::Result<()> { + backend::mm::syscalls::munlock(ptr, len) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,21 @@ +//! Memory map operations. + +#[cfg(not(target_os = "redox"))] +mod madvise; +mod mmap; +mod msync; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod userfaultfd; + +#[cfg(not(target_os = "redox"))] +pub use madvise::{madvise, Advice}; +pub use mmap::{ + mlock, mmap, mmap_anonymous, mprotect, munlock, munmap, MapFlags, MprotectFlags, ProtFlags, +}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use mmap::{mlock_with, MlockFlags}; +#[cfg(any(linux_raw, all(libc, target_os = "linux")))] +pub use mmap::{mremap, mremap_fixed, MremapFlags}; +pub use msync::{msync, MsyncFlags}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use userfaultfd::{userfaultfd, UserfaultfdFlags}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/msync.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/msync.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/msync.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/msync.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,32 @@ +//! 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 `msync`] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/msync.html +/// [Linux `msync`]: https://man7.org/linux/man-pages/man2/msync.2.html +#[inline] +pub unsafe fn msync(addr: *mut c_void, len: usize, flags: MsyncFlags) -> io::Result<()> { + backend::mm::syscalls::msync(addr, len, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/userfaultfd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/userfaultfd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/mm/userfaultfd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/mm/userfaultfd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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)` +/// +/// # 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 { + backend::mm::syscalls::userfaultfd(flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/addr.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/addr.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/addr.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/addr.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,643 @@ +//! The following is derived from Rust's +//! library/std/src/net/socket_addr.rs at revision +//! f7e8ba28a4785e698a55fb95e4b3e803302de0ff. +//! +//! All code in this file is licensed MIT or Apache 2.0 at your option. +//! +//! This defines `SocketAddr`, `SocketAddrV4`, and `SocketAddrV6` in a +//! platform-independent way. It is not the native representation. + +#![allow(unsafe_code)] + +use crate::net::ip::{IpAddr, Ipv4Addr, Ipv6Addr}; +use core::cmp::Ordering; +use core::hash; + +/// An internet socket address, either IPv4 or IPv6. +/// +/// Internet socket addresses consist of an [IP address], a 16-bit port number, as well +/// as possibly some version-dependent additional information. See [`SocketAddrV4`]'s and +/// [`SocketAddrV6`]'s respective documentation for more details. +/// +/// The size of a `SocketAddr` instance may vary depending on the target operating +/// system. +/// +/// [IP address]: IpAddr +/// +/// # Examples +/// +/// ``` +/// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; +/// +/// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); +/// +/// assert_eq!("127.0.0.1:8080".parse(), Ok(socket)); +/// assert_eq!(socket.port(), 8080); +/// assert_eq!(socket.is_ipv4(), true); +/// ``` +#[derive(Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +pub enum SocketAddr { + /// An IPv4 socket address. + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + V4(#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] SocketAddrV4), + /// An IPv6 socket address. + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + V6(#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] SocketAddrV6), +} + +/// An IPv4 socket address. +/// +/// IPv4 socket addresses consist of an [`IPv4` address] and a 16-bit port number, as +/// stated in [IETF RFC 793]. +/// +/// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses. +/// +/// The size of a `SocketAddrV4` struct may vary depending on the target operating +/// system. Do not assume that this type has the same memory layout as the underlying +/// system representation. +/// +/// [IETF RFC 793]: https://tools.ietf.org/html/rfc793 +/// [`IPv4` address]: Ipv4Addr +/// +/// # Examples +/// +/// ``` +/// use std::net::{Ipv4Addr, SocketAddrV4}; +/// +/// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); +/// +/// assert_eq!("127.0.0.1:8080".parse(), Ok(socket)); +/// assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1)); +/// assert_eq!(socket.port(), 8080); +/// ``` +#[derive(Copy, Clone, Eq, PartialEq)] +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +pub struct SocketAddrV4 { + ip: Ipv4Addr, + port: u16, +} + +/// An IPv6 socket address. +/// +/// IPv6 socket addresses consist of an [`IPv6` address], a 16-bit port number, as well +/// as fields containing the traffic class, the flow label, and a scope identifier +/// (see [IETF RFC 2553, Section 3.3] for more details). +/// +/// See [`SocketAddr`] for a type encompassing both IPv4 and IPv6 socket addresses. +/// +/// The size of a `SocketAddrV6` struct may vary depending on the target operating +/// system. Do not assume that this type has the same memory layout as the underlying +/// system representation. +/// +/// [IETF RFC 2553, Section 3.3]: https://tools.ietf.org/html/rfc2553#section-3.3 +/// [`IPv6` address]: Ipv6Addr +/// +/// # Examples +/// +/// ``` +/// use std::net::{Ipv6Addr, SocketAddrV6}; +/// +/// let socket = SocketAddrV6::new(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1), 8080, 0, 0); +/// +/// assert_eq!("[2001:db8::1]:8080".parse(), Ok(socket)); +/// assert_eq!(socket.ip(), &Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1)); +/// assert_eq!(socket.port(), 8080); +/// ``` +#[derive(Copy, Clone, Eq, PartialEq)] +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +pub struct SocketAddrV6 { + ip: Ipv6Addr, + port: u16, + flowinfo: u32, + scope_id: u32, +} + +impl SocketAddr { + /// Creates a new socket address from an [IP address] and a port number. + /// + /// [IP address]: IpAddr + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))); + /// assert_eq!(socket.port(), 8080); + /// ``` + #[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] + #[must_use] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn new(ip: IpAddr, port: u16) -> SocketAddr { + match ip { + IpAddr::V4(a) => SocketAddr::V4(SocketAddrV4::new(a, port)), + IpAddr::V6(a) => SocketAddr::V6(SocketAddrV6::new(a, port, 0, 0)), + } + } + + /// Returns the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn ip(&self) -> IpAddr { + match *self { + SocketAddr::V4(ref a) => IpAddr::V4(*a.ip()), + SocketAddr::V6(ref a) => IpAddr::V6(*a.ip()), + } + } + + /// Changes the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// socket.set_ip(IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1))); + /// assert_eq!(socket.ip(), IpAddr::V4(Ipv4Addr::new(10, 10, 0, 1))); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_ip(&mut self, new_ip: IpAddr) { + // `match (*self, new_ip)` would have us mutate a copy of self only to throw it away. + match (self, new_ip) { + (&mut SocketAddr::V4(ref mut a), IpAddr::V4(new_ip)) => a.set_ip(new_ip), + (&mut SocketAddr::V6(ref mut a), IpAddr::V6(new_ip)) => a.set_ip(new_ip), + (self_, new_ip) => *self_ = Self::new(new_ip, self_.port()), + } + } + + /// Returns the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// assert_eq!(socket.port(), 8080); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn port(&self) -> u16 { + match *self { + SocketAddr::V4(ref a) => a.port(), + SocketAddr::V6(ref a) => a.port(), + } + } + + /// Changes the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let mut socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// socket.set_port(1025); + /// assert_eq!(socket.port(), 1025); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_port(&mut self, new_port: u16) { + match *self { + SocketAddr::V4(ref mut a) => a.set_port(new_port), + SocketAddr::V6(ref mut a) => a.set_port(new_port), + } + } + + /// Returns [`true`] if the [IP address] in this `SocketAddr` is an + /// [`IPv4` address], and [`false`] otherwise. + /// + /// [IP address]: IpAddr + /// [`IPv4` address]: IpAddr::V4 + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, SocketAddr}; + /// + /// let socket = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + /// assert_eq!(socket.is_ipv4(), true); + /// assert_eq!(socket.is_ipv6(), false); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "sockaddr_checker", since = "1.16.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn is_ipv4(&self) -> bool { + matches!(*self, SocketAddr::V4(_)) + } + + /// Returns [`true`] if the [IP address] in this `SocketAddr` is an + /// [`IPv6` address], and [`false`] otherwise. + /// + /// [IP address]: IpAddr + /// [`IPv6` address]: IpAddr::V6 + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv6Addr, SocketAddr}; + /// + /// let socket = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 65535, 0, 1)), 8080); + /// assert_eq!(socket.is_ipv4(), false); + /// assert_eq!(socket.is_ipv6(), true); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "sockaddr_checker", since = "1.16.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn is_ipv6(&self) -> bool { + matches!(*self, SocketAddr::V6(_)) + } +} + +impl SocketAddrV4 { + /// Creates a new socket address from an [`IPv4` address] and a port number. + /// + /// [`IPv4` address]: Ipv4Addr + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV4, Ipv4Addr}; + /// + /// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); + /// ``` + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn new(ip: Ipv4Addr, port: u16) -> SocketAddrV4 { + SocketAddrV4 { ip, port } + } + + /// Returns the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV4, Ipv4Addr}; + /// + /// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); + /// assert_eq!(socket.ip(), &Ipv4Addr::new(127, 0, 0, 1)); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn ip(&self) -> &Ipv4Addr { + &self.ip + } + + /// Changes the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV4, Ipv4Addr}; + /// + /// let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); + /// socket.set_ip(Ipv4Addr::new(192, 168, 0, 1)); + /// assert_eq!(socket.ip(), &Ipv4Addr::new(192, 168, 0, 1)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_ip(&mut self, new_ip: Ipv4Addr) { + self.ip = new_ip; + } + + /// Returns the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV4, Ipv4Addr}; + /// + /// let socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); + /// assert_eq!(socket.port(), 8080); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn port(&self) -> u16 { + self.port + } + + /// Changes the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV4, Ipv4Addr}; + /// + /// let mut socket = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 8080); + /// socket.set_port(4242); + /// assert_eq!(socket.port(), 4242); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_port(&mut self, new_port: u16) { + self.port = new_port; + } +} + +impl SocketAddrV6 { + /// Creates a new socket address from an [`IPv6` address], a 16-bit port number, + /// and the `flowinfo` and `scope_id` fields. + /// + /// For more information on the meaning and layout of the `flowinfo` and `scope_id` + /// parameters, see [IETF RFC 2553, Section 3.3]. + /// + /// [IETF RFC 2553, Section 3.3]: https://tools.ietf.org/html/rfc2553#section-3.3 + /// [`IPv6` address]: Ipv6Addr + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0); + /// ``` + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn new(ip: Ipv6Addr, port: u16, flowinfo: u32, scope_id: u32) -> SocketAddrV6 { + SocketAddrV6 { + ip, + port, + flowinfo, + scope_id, + } + } + + /// Returns the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0); + /// assert_eq!(socket.ip(), &Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn ip(&self) -> &Ipv6Addr { + &self.ip + } + + /// Changes the IP address associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0); + /// socket.set_ip(Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0)); + /// assert_eq!(socket.ip(), &Ipv6Addr::new(76, 45, 0, 0, 0, 0, 0, 0)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_ip(&mut self, new_ip: Ipv6Addr) { + self.ip = new_ip; + } + + /// Returns the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0); + /// assert_eq!(socket.port(), 8080); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn port(&self) -> u16 { + self.port + } + + /// Changes the port number associated with this socket address. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 0); + /// socket.set_port(4242); + /// assert_eq!(socket.port(), 4242); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_port(&mut self, new_port: u16) { + self.port = new_port; + } + + /// Returns the flow information associated with this address. + /// + /// This information corresponds to the `sin6_flowinfo` field in C's `netinet/in.h`, + /// as specified in [IETF RFC 2553, Section 3.3]. + /// It combines information about the flow label and the traffic class as specified + /// in [IETF RFC 2460], respectively [Section 6] and [Section 7]. + /// + /// [IETF RFC 2553, Section 3.3]: https://tools.ietf.org/html/rfc2553#section-3.3 + /// [IETF RFC 2460]: https://tools.ietf.org/html/rfc2460 + /// [Section 6]: https://tools.ietf.org/html/rfc2460#section-6 + /// [Section 7]: https://tools.ietf.org/html/rfc2460#section-7 + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0); + /// assert_eq!(socket.flowinfo(), 10); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn flowinfo(&self) -> u32 { + self.flowinfo + } + + /// Changes the flow information associated with this socket address. + /// + /// See [`SocketAddrV6::flowinfo`]'s documentation for more details. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 10, 0); + /// socket.set_flowinfo(56); + /// assert_eq!(socket.flowinfo(), 56); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_flowinfo(&mut self, new_flowinfo: u32) { + self.flowinfo = new_flowinfo; + } + + /// Returns the scope ID associated with this address. + /// + /// This information corresponds to the `sin6_scope_id` field in C's `netinet/in.h`, + /// as specified in [IETF RFC 2553, Section 3.3]. + /// + /// [IETF RFC 2553, Section 3.3]: https://tools.ietf.org/html/rfc2553#section-3.3 + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78); + /// assert_eq!(socket.scope_id(), 78); + /// ``` + #[must_use] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_socketaddr", issue = "82485") + )] + pub const fn scope_id(&self) -> u32 { + self.scope_id + } + + /// Changes the scope ID associated with this socket address. + /// + /// See [`SocketAddrV6::scope_id`]'s documentation for more details. + /// + /// # Examples + /// + /// ``` + /// use std::net::{SocketAddrV6, Ipv6Addr}; + /// + /// let mut socket = SocketAddrV6::new(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1), 8080, 0, 78); + /// socket.set_scope_id(42); + /// assert_eq!(socket.scope_id(), 42); + /// ``` + #[cfg_attr(staged_api, stable(feature = "sockaddr_setters", since = "1.9.0"))] + pub fn set_scope_id(&mut self, new_scope_id: u32) { + self.scope_id = new_scope_id; + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_ip", since = "1.16.0"))] +impl From for SocketAddr { + /// Converts a [`SocketAddrV4`] into a [`SocketAddr::V4`]. + fn from(sock4: SocketAddrV4) -> SocketAddr { + SocketAddr::V4(sock4) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_ip", since = "1.16.0"))] +impl From for SocketAddr { + /// Converts a [`SocketAddrV6`] into a [`SocketAddr::V6`]. + fn from(sock6: SocketAddrV6) -> SocketAddr { + SocketAddr::V6(sock6) + } +} + +#[cfg_attr(staged_api, stable(feature = "addr_from_into_ip", since = "1.17.0"))] +impl> From<(I, u16)> for SocketAddr { + /// Converts a tuple struct (Into<[`IpAddr`]>, `u16`) into a [`SocketAddr`]. + /// + /// This conversion creates a [`SocketAddr::V4`] for an [`IpAddr::V4`] + /// and creates a [`SocketAddr::V6`] for an [`IpAddr::V6`]. + /// + /// `u16` is treated as port of the newly created [`SocketAddr`]. + fn from(pieces: (I, u16)) -> SocketAddr { + SocketAddr::new(pieces.0.into(), pieces.1) + } +} + +#[cfg_attr(staged_api, stable(feature = "socketaddr_ordering", since = "1.45.0"))] +impl PartialOrd for SocketAddrV4 { + fn partial_cmp(&self, other: &SocketAddrV4) -> Option { + Some(self.cmp(other)) + } +} + +#[cfg_attr(staged_api, stable(feature = "socketaddr_ordering", since = "1.45.0"))] +impl PartialOrd for SocketAddrV6 { + fn partial_cmp(&self, other: &SocketAddrV6) -> Option { + Some(self.cmp(other)) + } +} + +#[cfg_attr(staged_api, stable(feature = "socketaddr_ordering", since = "1.45.0"))] +impl Ord for SocketAddrV4 { + fn cmp(&self, other: &SocketAddrV4) -> Ordering { + self.ip() + .cmp(other.ip()) + .then(self.port().cmp(&other.port())) + } +} + +#[cfg_attr(staged_api, stable(feature = "socketaddr_ordering", since = "1.45.0"))] +impl Ord for SocketAddrV6 { + fn cmp(&self, other: &SocketAddrV6) -> Ordering { + self.ip() + .cmp(other.ip()) + .then(self.port().cmp(&other.port())) + } +} + +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl hash::Hash for SocketAddrV4 { + fn hash(&self, s: &mut H) { + (self.port, self.ip).hash(s) + } +} +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl hash::Hash for SocketAddrV6 { + fn hash(&self, s: &mut H) { + (self.port, &self.ip, self.flowinfo, self.scope_id).hash(s) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/ip.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/ip.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/ip.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/ip.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,2058 @@ +//! The following is derived from Rust's +//! library/std/src/net/ip_addr.rs at revision +//! 14230a7f8e117aa049d3ae661fa00ded7edefc68. +//! +//! All code in this file is licensed MIT or Apache 2.0 at your option. +//! +//! This defines `IpAddr`, `Ipv4Addr`, and `Ipv6Addr`. Ideally, these should be +//! defined in `core`. See [RFC 2832]. +//! +//! [RFC 2832]: https://github.com/rust-lang/rfcs/pull/2832 + +#![allow(unsafe_code)] + +use core::cmp::Ordering; +use core::mem::transmute; + +/// An IP address, either IPv4 or IPv6. +/// +/// This enum can contain either an [`Ipv4Addr`] or an [`Ipv6Addr`], see their +/// respective documentation for more details. +/// +/// # Examples +/// +/// ``` +/// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; +/// +/// let localhost_v4 = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)); +/// let localhost_v6 = IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); +/// +/// assert_eq!("127.0.0.1".parse(), Ok(localhost_v4)); +/// assert_eq!("::1".parse(), Ok(localhost_v6)); +/// +/// assert_eq!(localhost_v4.is_ipv6(), false); +/// assert_eq!(localhost_v4.is_ipv4(), true); +/// ``` +#[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] +#[derive(Copy, Clone, Eq, PartialEq, Hash, PartialOrd, Ord)] +pub enum IpAddr { + /// An IPv4 address. + #[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] + V4(#[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] Ipv4Addr), + /// An IPv6 address. + #[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] + V6(#[cfg_attr(staged_api, stable(feature = "ip_addr", since = "1.7.0"))] Ipv6Addr), +} + +/// An IPv4 address. +/// +/// IPv4 addresses are defined as 32-bit integers in [IETF RFC 791]. +/// They are usually represented as four octets. +/// +/// See [`IpAddr`] for a type encompassing both IPv4 and IPv6 addresses. +/// +/// [IETF RFC 791]: https://tools.ietf.org/html/rfc791 +/// +/// # Textual representation +/// +/// `Ipv4Addr` provides a [`FromStr`] implementation. The four octets are in decimal +/// notation, divided by `.` (this is called "dot-decimal notation"). +/// Notably, octal numbers (which are indicated with a leading `0`) and hexadecimal numbers (which +/// are indicated with a leading `0x`) are not allowed per [IETF RFC 6943]. +/// +/// [IETF RFC 6943]: https://tools.ietf.org/html/rfc6943#section-3.1.1 +/// [`FromStr`]: core::str::FromStr +/// +/// # Examples +/// +/// ``` +/// use std::net::Ipv4Addr; +/// +/// let localhost = Ipv4Addr::new(127, 0, 0, 1); +/// assert_eq!("127.0.0.1".parse(), Ok(localhost)); +/// assert_eq!(localhost.is_loopback(), true); +/// assert!("012.004.002.000".parse::().is_err()); // all octets are in octal +/// assert!("0000000.0.0.0".parse::().is_err()); // first octet is a zero in octal +/// assert!("0xcb.0x0.0x71.0x00".parse::().is_err()); // all octets are in hex +/// ``` +#[derive(Copy, Clone, PartialEq, Eq, Hash)] +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +pub struct Ipv4Addr { + octets: [u8; 4], +} + +/// An IPv6 address. +/// +/// IPv6 addresses are defined as 128-bit integers in [IETF RFC 4291]. +/// They are usually represented as eight 16-bit segments. +/// +/// [IETF RFC 4291]: https://tools.ietf.org/html/rfc4291 +/// +/// # Embedding IPv4 Addresses +/// +/// See [`IpAddr`] for a type encompassing both IPv4 and IPv6 addresses. +/// +/// To assist in the transition from IPv4 to IPv6 two types of IPv6 addresses that embed an IPv4 address were defined: +/// IPv4-compatible and IPv4-mapped addresses. Of these IPv4-compatible addresses have been officially deprecated. +/// +/// Both types of addresses are not assigned any special meaning by this implementation, +/// other than what the relevant standards prescribe. This means that an address like `::ffff:127.0.0.1`, +/// while representing an IPv4 loopback address, is not itself an IPv6 loopback address; only `::1` is. +/// To handle these so called "IPv4-in-IPv6" addresses, they have to first be converted to their canonical IPv4 address. +/// +/// ### IPv4-Compatible IPv6 Addresses +/// +/// IPv4-compatible IPv6 addresses are defined in [IETF RFC 4291 Section 2.5.5.1], and have been officially deprecated. +/// The RFC describes the format of an "IPv4-Compatible IPv6 address" as follows: +/// +/// ```text +/// | 80 bits | 16 | 32 bits | +/// +--------------------------------------+--------------------------+ +/// |0000..............................0000|0000| IPv4 address | +/// +--------------------------------------+----+---------------------+ +/// ``` +/// So `::a.b.c.d` would be an IPv4-compatible IPv6 address representing the IPv4 address `a.b.c.d`. +/// +/// To convert from an IPv4 address to an IPv4-compatible IPv6 address, use [`Ipv4Addr::to_ipv6_compatible`]. +/// Use [`Ipv6Addr::to_ipv4`] to convert an IPv4-compatible IPv6 address to the canonical IPv4 address. +/// +/// [IETF RFC 4291 Section 2.5.5.1]: https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.1 +/// +/// ### IPv4-Mapped IPv6 Addresses +/// +/// IPv4-mapped IPv6 addresses are defined in [IETF RFC 4291 Section 2.5.5.2]. +/// The RFC describes the format of an "IPv4-Mapped IPv6 address" as follows: +/// +/// ```text +/// | 80 bits | 16 | 32 bits | +/// +--------------------------------------+--------------------------+ +/// |0000..............................0000|FFFF| IPv4 address | +/// +--------------------------------------+----+---------------------+ +/// ``` +/// So `::ffff:a.b.c.d` would be an IPv4-mapped IPv6 address representing the IPv4 address `a.b.c.d`. +/// +/// To convert from an IPv4 address to an IPv4-mapped IPv6 address, use [`Ipv4Addr::to_ipv6_mapped`]. +/// Use [`Ipv6Addr::to_ipv4`] to convert an IPv4-mapped IPv6 address to the canonical IPv4 address. +/// Note that this will also convert the IPv6 loopback address `::1` to `0.0.0.1`. Use +/// [`Ipv6Addr::to_ipv4_mapped`] to avoid this. +/// +/// [IETF RFC 4291 Section 2.5.5.2]: https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2 +/// +/// # Textual representation +/// +/// `Ipv6Addr` provides a [`FromStr`] implementation. There are many ways to represent +/// an IPv6 address in text, but in general, each segments is written in hexadecimal +/// notation, and segments are separated by `:`. For more information, see +/// [IETF RFC 5952]. +/// +/// [`FromStr`]: core::str::FromStr +/// [IETF RFC 5952]: https://tools.ietf.org/html/rfc5952 +/// +/// # Examples +/// +/// ``` +/// use std::net::Ipv6Addr; +/// +/// let localhost = Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1); +/// assert_eq!("::1".parse(), Ok(localhost)); +/// assert_eq!(localhost.is_loopback(), true); +/// ``` +#[derive(Copy, Clone, PartialEq, Eq, Hash)] +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +pub struct Ipv6Addr { + octets: [u8; 16], +} + +/// Scope of an [IPv6 multicast address] as defined in [IETF RFC 7346 section 2]. +/// +/// # Stability Guarantees +/// +/// Not all possible values for a multicast scope have been assigned. +/// Future RFCs may introduce new scopes, which will be added as variants to this enum; +/// because of this the enum is marked as `#[non_exhaustive]`. +/// +/// # Examples +/// ``` +/// #![feature(ip)] +/// +/// use std::net::Ipv6Addr; +/// use std::net::Ipv6MulticastScope::*; +/// +/// // An IPv6 multicast address with global scope (`ff0e::`). +/// let address = Ipv6Addr::new(0xff0e, 0, 0, 0, 0, 0, 0, 0); +/// +/// // Will print "Global scope". +/// match address.multicast_scope() { +/// Some(InterfaceLocal) => println!("Interface-Local scope"), +/// Some(LinkLocal) => println!("Link-Local scope"), +/// Some(RealmLocal) => println!("Realm-Local scope"), +/// Some(AdminLocal) => println!("Admin-Local scope"), +/// Some(SiteLocal) => println!("Site-Local scope"), +/// Some(OrganizationLocal) => println!("Organization-Local scope"), +/// Some(Global) => println!("Global scope"), +/// Some(_) => println!("Unknown scope"), +/// None => println!("Not a multicast address!") +/// } +/// +/// ``` +/// +/// [IPv6 multicast address]: Ipv6Addr +/// [IETF RFC 7346 section 2]: https://tools.ietf.org/html/rfc7346#section-2 +#[derive(Copy, PartialEq, Eq, Clone, Hash, Debug)] +#[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] +#[non_exhaustive] +pub enum Ipv6MulticastScope { + /// Interface-Local scope. + InterfaceLocal, + /// Link-Local scope. + LinkLocal, + /// Realm-Local scope. + RealmLocal, + /// Admin-Local scope. + AdminLocal, + /// Site-Local scope. + SiteLocal, + /// Organization-Local scope. + OrganizationLocal, + /// Global scope. + Global, +} + +impl IpAddr { + /// Returns [`true`] for the special 'unspecified' address. + /// + /// See the documentation for [`Ipv4Addr::is_unspecified()`] and + /// [`Ipv6Addr::is_unspecified()`] for more details. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)).is_unspecified(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0)).is_unspecified(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "ip_shared", since = "1.12.0"))] + #[must_use] + #[inline] + pub const fn is_unspecified(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_unspecified(), + IpAddr::V6(ip) => ip.is_unspecified(), + } + } + + /// Returns [`true`] if this is a loopback address. + /// + /// See the documentation for [`Ipv4Addr::is_loopback()`] and + /// [`Ipv6Addr::is_loopback()`] for more details. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)).is_loopback(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0x1)).is_loopback(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "ip_shared", since = "1.12.0"))] + #[must_use] + #[inline] + pub const fn is_loopback(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_loopback(), + IpAddr::V6(ip) => ip.is_loopback(), + } + } + + /// Returns [`true`] if the address appears to be globally routable. + /// + /// See the documentation for [`Ipv4Addr::is_global()`] and + /// [`Ipv6Addr::is_global()`] for more details. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(80, 9, 12, 3)).is_global(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0x1c9, 0, 0, 0xafc8, 0, 0x1)).is_global(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ip", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_global(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_global(), + IpAddr::V6(ip) => ip.is_global(), + } + } + + /// Returns [`true`] if this is a multicast address. + /// + /// See the documentation for [`Ipv4Addr::is_multicast()`] and + /// [`Ipv6Addr::is_multicast()`] for more details. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(224, 254, 0, 0)).is_multicast(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0)).is_multicast(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "ip_shared", since = "1.12.0"))] + #[must_use] + #[inline] + pub const fn is_multicast(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_multicast(), + IpAddr::V6(ip) => ip.is_multicast(), + } + } + + /// Returns [`true`] if this address is in a range designated for documentation. + /// + /// See the documentation for [`Ipv4Addr::is_documentation()`] and + /// [`Ipv6Addr::is_documentation()`] for more details. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_documentation(), true); + /// assert_eq!( + /// IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_documentation(), + /// true + /// ); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ip", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_documentation(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_documentation(), + IpAddr::V6(ip) => ip.is_documentation(), + } + } + + /// Returns [`true`] if this address is in a range designated for benchmarking. + /// + /// See the documentation for [`Ipv4Addr::is_benchmarking()`] and + /// [`Ipv6Addr::is_benchmarking()`] for more details. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(198, 19, 255, 255)).is_benchmarking(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0x2, 0, 0, 0, 0, 0, 0)).is_benchmarking(), true); + /// ``` + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_benchmarking(&self) -> bool { + match self { + IpAddr::V4(ip) => ip.is_benchmarking(), + IpAddr::V6(ip) => ip.is_benchmarking(), + } + } + + /// Returns [`true`] if this address is an [`IPv4` address], and [`false`] + /// otherwise. + /// + /// [`IPv4` address]: IpAddr::V4 + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv4(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv4(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "ipaddr_checker", since = "1.16.0"))] + #[must_use] + #[inline] + pub const fn is_ipv4(&self) -> bool { + matches!(self, IpAddr::V4(_)) + } + + /// Returns [`true`] if this address is an [`IPv6` address], and [`false`] + /// otherwise. + /// + /// [`IPv6` address]: IpAddr::V6 + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(203, 0, 113, 6)).is_ipv6(), false); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0)).is_ipv6(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "ipaddr_checker", since = "1.16.0"))] + #[must_use] + #[inline] + pub const fn is_ipv6(&self) -> bool { + matches!(self, IpAddr::V6(_)) + } + + /// Converts this address to an `IpAddr::V4` if it is an IPv4-mapped IPv6 addresses, otherwise it + /// return `self` as-is. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)).to_canonical().is_loopback(), true); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0x7f00, 0x1)).is_loopback(), false); + /// assert_eq!(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0x7f00, 0x1)).to_canonical().is_loopback(), true); + /// ``` + #[inline] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ip", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + pub const fn to_canonical(&self) -> IpAddr { + match self { + &v4 @ IpAddr::V4(_) => v4, + IpAddr::V6(v6) => v6.to_canonical(), + } + } +} + +impl Ipv4Addr { + /// Creates a new IPv4 address from four eight-bit octets. + /// + /// The result will represent the IP address `a`.`b`.`c`.`d`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::new(127, 0, 0, 1); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_32", since = "1.32.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[inline] + pub const fn new(a: u8, b: u8, c: u8, d: u8) -> Ipv4Addr { + Ipv4Addr { + octets: [a, b, c, d], + } + } + + /// An IPv4 address with the address pointing to localhost: `127.0.0.1` + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::LOCALHOST; + /// assert_eq!(addr, Ipv4Addr::new(127, 0, 0, 1)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "ip_constructors", since = "1.30.0"))] + pub const LOCALHOST: Self = Ipv4Addr::new(127, 0, 0, 1); + + /// An IPv4 address representing an unspecified address: `0.0.0.0` + /// + /// This corresponds to the constant `INADDR_ANY` in other languages. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::UNSPECIFIED; + /// assert_eq!(addr, Ipv4Addr::new(0, 0, 0, 0)); + /// ``` + #[doc(alias = "INADDR_ANY")] + #[cfg_attr(staged_api, stable(feature = "ip_constructors", since = "1.30.0"))] + pub const UNSPECIFIED: Self = Ipv4Addr::new(0, 0, 0, 0); + + /// An IPv4 address representing the broadcast address: `255.255.255.255` + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::BROADCAST; + /// assert_eq!(addr, Ipv4Addr::new(255, 255, 255, 255)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "ip_constructors", since = "1.30.0"))] + pub const BROADCAST: Self = Ipv4Addr::new(255, 255, 255, 255); + + /// Returns the four eight-bit integers that make up this address. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::new(127, 0, 0, 1); + /// assert_eq!(addr.octets(), [127, 0, 0, 1]); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[inline] + pub const fn octets(&self) -> [u8; 4] { + self.octets + } + + /// Returns [`true`] for the special 'unspecified' address (`0.0.0.0`). + /// + /// This property is defined in _UNIX Network Programming, Second Edition_, + /// W. Richard Stevens, p. 891; see also [ip7]. + /// + /// [ip7]: https://man7.org/linux/man-pages/man7/ip.7.html + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(0, 0, 0, 0).is_unspecified(), true); + /// assert_eq!(Ipv4Addr::new(45, 22, 13, 197).is_unspecified(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_32", since = "1.32.0") + )] + #[cfg_attr(staged_api, stable(feature = "ip_shared", since = "1.12.0"))] + #[must_use] + #[inline] + pub const fn is_unspecified(&self) -> bool { + u32::from_be_bytes(self.octets) == 0 + } + + /// Returns [`true`] if this is a loopback address (`127.0.0.0/8`). + /// + /// This property is defined by [IETF RFC 1122]. + /// + /// [IETF RFC 1122]: https://tools.ietf.org/html/rfc1122 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_loopback(), true); + /// assert_eq!(Ipv4Addr::new(45, 22, 13, 197).is_loopback(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_loopback(&self) -> bool { + self.octets()[0] == 127 + } + + /// Returns [`true`] if this is a private address. + /// + /// The private address ranges are defined in [IETF RFC 1918] and include: + /// + /// - `10.0.0.0/8` + /// - `172.16.0.0/12` + /// - `192.168.0.0/16` + /// + /// [IETF RFC 1918]: https://tools.ietf.org/html/rfc1918 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(10, 0, 0, 1).is_private(), true); + /// assert_eq!(Ipv4Addr::new(10, 10, 10, 10).is_private(), true); + /// assert_eq!(Ipv4Addr::new(172, 16, 10, 10).is_private(), true); + /// assert_eq!(Ipv4Addr::new(172, 29, 45, 14).is_private(), true); + /// assert_eq!(Ipv4Addr::new(172, 32, 0, 2).is_private(), false); + /// assert_eq!(Ipv4Addr::new(192, 168, 0, 2).is_private(), true); + /// assert_eq!(Ipv4Addr::new(192, 169, 0, 2).is_private(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_private(&self) -> bool { + match self.octets() { + [10, ..] => true, + [172, b, ..] if b >= 16 && b <= 31 => true, + [192, 168, ..] => true, + _ => false, + } + } + + /// Returns [`true`] if the address is link-local (`169.254.0.0/16`). + /// + /// This property is defined by [IETF RFC 3927]. + /// + /// [IETF RFC 3927]: https://tools.ietf.org/html/rfc3927 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(169, 254, 0, 0).is_link_local(), true); + /// assert_eq!(Ipv4Addr::new(169, 254, 10, 65).is_link_local(), true); + /// assert_eq!(Ipv4Addr::new(16, 89, 10, 65).is_link_local(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_link_local(&self) -> bool { + matches!(self.octets(), [169, 254, ..]) + } + + /// Returns [`true`] if the address appears to be globally reachable + /// as specified by the [IANA IPv4 Special-Purpose Address Registry]. + /// Whether or not an address is practically reachable will depend on your network configuration. + /// + /// Most IPv4 addresses are globally reachable; + /// unless they are specifically defined as *not* globally reachable. + /// + /// Non-exhaustive list of notable addresses that are not globally reachable: + /// + /// - The [unspecified address] ([`is_unspecified`](Ipv4Addr::is_unspecified)) + /// - Addresses reserved for private use ([`is_private`](Ipv4Addr::is_private)) + /// - Addresses in the shared address space ([`is_shared`](Ipv4Addr::is_shared)) + /// - Loopback addresses ([`is_loopback`](Ipv4Addr::is_loopback)) + /// - Link-local addresses ([`is_link_local`](Ipv4Addr::is_link_local)) + /// - Addresses reserved for documentation ([`is_documentation`](Ipv4Addr::is_documentation)) + /// - Addresses reserved for benchmarking ([`is_benchmarking`](Ipv4Addr::is_benchmarking)) + /// - Reserved addresses ([`is_reserved`](Ipv4Addr::is_reserved)) + /// - The [broadcast address] ([`is_broadcast`](Ipv4Addr::is_broadcast)) + /// + /// For the complete overview of which addresses are globally reachable, see the table at the [IANA IPv4 Special-Purpose Address Registry]. + /// + /// [IANA IPv4 Special-Purpose Address Registry]: https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml + /// [unspecified address]: Ipv4Addr::UNSPECIFIED + /// [broadcast address]: Ipv4Addr::BROADCAST + + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv4Addr; + /// + /// // Most IPv4 addresses are globally reachable: + /// assert_eq!(Ipv4Addr::new(80, 9, 12, 3).is_global(), true); + /// + /// // However some addresses have been assigned a special meaning + /// // that makes them not globally reachable. Some examples are: + /// + /// // The unspecified address (`0.0.0.0`) + /// assert_eq!(Ipv4Addr::UNSPECIFIED.is_global(), false); + /// + /// // Addresses reserved for private use (`10.0.0.0/8`, `172.16.0.0/12`, 192.168.0.0/16) + /// assert_eq!(Ipv4Addr::new(10, 254, 0, 0).is_global(), false); + /// assert_eq!(Ipv4Addr::new(192, 168, 10, 65).is_global(), false); + /// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_global(), false); + /// + /// // Addresses in the shared address space (`100.64.0.0/10`) + /// assert_eq!(Ipv4Addr::new(100, 100, 0, 0).is_global(), false); + /// + /// // The loopback addresses (`127.0.0.0/8`) + /// assert_eq!(Ipv4Addr::LOCALHOST.is_global(), false); + /// + /// // Link-local addresses (`169.254.0.0/16`) + /// assert_eq!(Ipv4Addr::new(169, 254, 45, 1).is_global(), false); + /// + /// // Addresses reserved for documentation (`192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`) + /// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).is_global(), false); + /// assert_eq!(Ipv4Addr::new(198, 51, 100, 65).is_global(), false); + /// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_global(), false); + /// + /// // Addresses reserved for benchmarking (`198.18.0.0/15`) + /// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_global(), false); + /// + /// // Reserved addresses (`240.0.0.0/4`) + /// assert_eq!(Ipv4Addr::new(250, 10, 20, 30).is_global(), false); + /// + /// // The broadcast address (`255.255.255.255`) + /// assert_eq!(Ipv4Addr::BROADCAST.is_global(), false); + /// + /// // For a complete overview see the IANA IPv4 Special-Purpose Address Registry. + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv4", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_global(&self) -> bool { + !(self.octets()[0] == 0 // "This network" + || self.is_private() + || self.is_shared() + || self.is_loopback() + || self.is_link_local() + // addresses reserved for future protocols (`192.0.0.0/24`) + ||(self.octets()[0] == 192 && self.octets()[1] == 0 && self.octets()[2] == 0) + || self.is_documentation() + || self.is_benchmarking() + || self.is_reserved() + || self.is_broadcast()) + } + + /// Returns [`true`] if this address is part of the Shared Address Space defined in + /// [IETF RFC 6598] (`100.64.0.0/10`). + /// + /// [IETF RFC 6598]: https://tools.ietf.org/html/rfc6598 + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(100, 64, 0, 0).is_shared(), true); + /// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true); + /// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv4", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_shared(&self) -> bool { + self.octets()[0] == 100 && (self.octets()[1] & 0b1100_0000 == 0b0100_0000) + } + + /// Returns [`true`] if this address part of the `198.18.0.0/15` range, which is reserved for + /// network devices benchmarking. This range is defined in [IETF RFC 2544] as `192.18.0.0` + /// through `198.19.255.255` but [errata 423] corrects it to `198.18.0.0/15`. + /// + /// [IETF RFC 2544]: https://tools.ietf.org/html/rfc2544 + /// [errata 423]: https://www.rfc-editor.org/errata/eid423 + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(198, 17, 255, 255).is_benchmarking(), false); + /// assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_benchmarking(), true); + /// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true); + /// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv4", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_benchmarking(&self) -> bool { + self.octets()[0] == 198 && (self.octets()[1] & 0xfe) == 18 + } + + /// Returns [`true`] if this address is reserved by IANA for future use. [IETF RFC 1112] + /// defines the block of reserved addresses as `240.0.0.0/4`. This range normally includes the + /// broadcast address `255.255.255.255`, but this implementation explicitly excludes it, since + /// it is obviously not reserved for future use. + /// + /// [IETF RFC 1112]: https://tools.ietf.org/html/rfc1112 + /// + /// # Warning + /// + /// As IANA assigns new addresses, this method will be + /// updated. This may result in non-reserved addresses being + /// treated as reserved in code that relies on an outdated version + /// of this method. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(240, 0, 0, 0).is_reserved(), true); + /// assert_eq!(Ipv4Addr::new(255, 255, 255, 254).is_reserved(), true); + /// + /// assert_eq!(Ipv4Addr::new(239, 255, 255, 255).is_reserved(), false); + /// // The broadcast address is not considered as reserved for future use by this implementation + /// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_reserved(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv4", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_reserved(&self) -> bool { + self.octets()[0] & 240 == 240 && !self.is_broadcast() + } + + /// Returns [`true`] if this is a multicast address (`224.0.0.0/4`). + /// + /// Multicast addresses have a most significant octet between `224` and `239`, + /// and is defined by [IETF RFC 5771]. + /// + /// [IETF RFC 5771]: https://tools.ietf.org/html/rfc5771 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(224, 254, 0, 0).is_multicast(), true); + /// assert_eq!(Ipv4Addr::new(236, 168, 10, 65).is_multicast(), true); + /// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_multicast(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_multicast(&self) -> bool { + self.octets()[0] >= 224 && self.octets()[0] <= 239 + } + + /// Returns [`true`] if this is a broadcast address (`255.255.255.255`). + /// + /// A broadcast address has all octets set to `255` as defined in [IETF RFC 919]. + /// + /// [IETF RFC 919]: https://tools.ietf.org/html/rfc919 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_broadcast(), true); + /// assert_eq!(Ipv4Addr::new(236, 168, 10, 65).is_broadcast(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_broadcast(&self) -> bool { + u32::from_be_bytes(self.octets()) == u32::from_be_bytes(Self::BROADCAST.octets()) + } + + /// Returns [`true`] if this address is in a range designated for documentation. + /// + /// This is defined in [IETF RFC 5737]: + /// + /// - `192.0.2.0/24` (TEST-NET-1) + /// - `198.51.100.0/24` (TEST-NET-2) + /// - `203.0.113.0/24` (TEST-NET-3) + /// + /// [IETF RFC 5737]: https://tools.ietf.org/html/rfc5737 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).is_documentation(), true); + /// assert_eq!(Ipv4Addr::new(198, 51, 100, 65).is_documentation(), true); + /// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_documentation(), true); + /// assert_eq!(Ipv4Addr::new(193, 34, 17, 19).is_documentation(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_documentation(&self) -> bool { + matches!( + self.octets(), + [192, 0, 2, _] | [198, 51, 100, _] | [203, 0, 113, _] + ) + } + + /// Converts this address to an [IPv4-compatible] [`IPv6` address]. + /// + /// `a.b.c.d` becomes `::a.b.c.d` + /// + /// Note that IPv4-compatible addresses have been officially deprecated. + /// If you don't explicitly need an IPv4-compatible address for legacy reasons, consider using `to_ipv6_mapped` instead. + /// + /// [IPv4-compatible]: Ipv6Addr#ipv4-compatible-ipv6-addresses + /// [`IPv6` address]: Ipv6Addr + /// + /// # Examples + /// + /// ``` + /// use std::net::{Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!( + /// Ipv4Addr::new(192, 0, 2, 255).to_ipv6_compatible(), + /// Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0xc000, 0x2ff) + /// ); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[inline] + pub const fn to_ipv6_compatible(&self) -> Ipv6Addr { + let [a, b, c, d] = self.octets(); + Ipv6Addr { + octets: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, a, b, c, d], + } + } + + /// Converts this address to an [IPv4-mapped] [`IPv6` address]. + /// + /// `a.b.c.d` becomes `::ffff:a.b.c.d` + /// + /// [IPv4-mapped]: Ipv6Addr#ipv4-mapped-ipv6-addresses + /// [`IPv6` address]: Ipv6Addr + /// + /// # Examples + /// + /// ``` + /// use std::net::{Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(Ipv4Addr::new(192, 0, 2, 255).to_ipv6_mapped(), + /// Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc000, 0x2ff)); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[inline] + pub const fn to_ipv6_mapped(&self) -> Ipv6Addr { + let [a, b, c, d] = self.octets(); + Ipv6Addr { + octets: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, a, b, c, d], + } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_ip", since = "1.16.0"))] +impl From for IpAddr { + /// Copies this address to a new `IpAddr::V4`. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr}; + /// + /// let addr = Ipv4Addr::new(127, 0, 0, 1); + /// + /// assert_eq!( + /// IpAddr::V4(addr), + /// IpAddr::from(addr) + /// ) + /// ``` + #[inline] + fn from(ipv4: Ipv4Addr) -> IpAddr { + IpAddr::V4(ipv4) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_ip", since = "1.16.0"))] +impl From for IpAddr { + /// Copies this address to a new `IpAddr::V6`. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv6Addr}; + /// + /// let addr = Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff); + /// + /// assert_eq!( + /// IpAddr::V6(addr), + /// IpAddr::from(addr) + /// ); + /// ``` + #[inline] + fn from(ipv6: Ipv6Addr) -> IpAddr { + IpAddr::V6(ipv6) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialEq for IpAddr { + #[inline] + fn eq(&self, other: &Ipv4Addr) -> bool { + match self { + IpAddr::V4(v4) => v4 == other, + IpAddr::V6(_) => false, + } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialEq for Ipv4Addr { + #[inline] + fn eq(&self, other: &IpAddr) -> bool { + match other { + IpAddr::V4(v4) => self == v4, + IpAddr::V6(_) => false, + } + } +} + +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl PartialOrd for Ipv4Addr { + #[inline] + fn partial_cmp(&self, other: &Ipv4Addr) -> Option { + Some(self.cmp(other)) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialOrd for IpAddr { + #[inline] + fn partial_cmp(&self, other: &Ipv4Addr) -> Option { + match self { + IpAddr::V4(v4) => v4.partial_cmp(other), + IpAddr::V6(_) => Some(Ordering::Greater), + } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialOrd for Ipv4Addr { + #[inline] + fn partial_cmp(&self, other: &IpAddr) -> Option { + match other { + IpAddr::V4(v4) => self.partial_cmp(v4), + IpAddr::V6(_) => Some(Ordering::Less), + } + } +} + +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl Ord for Ipv4Addr { + #[inline] + fn cmp(&self, other: &Ipv4Addr) -> Ordering { + self.octets.cmp(&other.octets) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_u32", since = "1.1.0"))] +impl From for u32 { + /// Converts an `Ipv4Addr` into a host byte order `u32`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::new(0x12, 0x34, 0x56, 0x78); + /// assert_eq!(0x12345678, u32::from(addr)); + /// ``` + #[inline] + fn from(ip: Ipv4Addr) -> u32 { + u32::from_be_bytes(ip.octets) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_u32", since = "1.1.0"))] +impl From for Ipv4Addr { + /// Converts a host byte order `u32` into an `Ipv4Addr`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::from(0x12345678); + /// assert_eq!(Ipv4Addr::new(0x12, 0x34, 0x56, 0x78), addr); + /// ``` + #[inline] + fn from(ip: u32) -> Ipv4Addr { + Ipv4Addr { + octets: ip.to_be_bytes(), + } + } +} + +#[cfg_attr(staged_api, stable(feature = "from_slice_v4", since = "1.9.0"))] +impl From<[u8; 4]> for Ipv4Addr { + /// Creates an `Ipv4Addr` from a four element byte array. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv4Addr; + /// + /// let addr = Ipv4Addr::from([13u8, 12u8, 11u8, 10u8]); + /// assert_eq!(Ipv4Addr::new(13, 12, 11, 10), addr); + /// ``` + #[inline] + fn from(octets: [u8; 4]) -> Ipv4Addr { + Ipv4Addr { octets } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_slice", since = "1.17.0"))] +impl From<[u8; 4]> for IpAddr { + /// Creates an `IpAddr::V4` from a four element byte array. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv4Addr}; + /// + /// let addr = IpAddr::from([13u8, 12u8, 11u8, 10u8]); + /// assert_eq!(IpAddr::V4(Ipv4Addr::new(13, 12, 11, 10)), addr); + /// ``` + #[inline] + fn from(octets: [u8; 4]) -> IpAddr { + IpAddr::V4(Ipv4Addr::from(octets)) + } +} + +impl Ipv6Addr { + /// Creates a new IPv6 address from eight 16-bit segments. + /// + /// The result will represent the IP address `a:b:c:d:e:f:g:h`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_32", since = "1.32.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[inline] + pub const fn new(a: u16, b: u16, c: u16, d: u16, e: u16, f: u16, g: u16, h: u16) -> Ipv6Addr { + let addr16 = [ + a.to_be(), + b.to_be(), + c.to_be(), + d.to_be(), + e.to_be(), + f.to_be(), + g.to_be(), + h.to_be(), + ]; + Ipv6Addr { + // All elements in `addr16` are big endian. + // SAFETY: `[u16; 8]` is always safe to transmute to `[u8; 16]`. + octets: unsafe { transmute::<_, [u8; 16]>(addr16) }, + } + } + + /// An IPv6 address representing localhost: `::1`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::LOCALHOST; + /// assert_eq!(addr, Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "ip_constructors", since = "1.30.0"))] + pub const LOCALHOST: Self = Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1); + + /// An IPv6 address representing the unspecified address: `::` + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::UNSPECIFIED; + /// assert_eq!(addr, Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0)); + /// ``` + #[cfg_attr(staged_api, stable(feature = "ip_constructors", since = "1.30.0"))] + pub const UNSPECIFIED: Self = Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0); + + /// Returns the eight 16-bit segments that make up this address. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).segments(), + /// [0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff]); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use] + #[inline] + pub const fn segments(&self) -> [u16; 8] { + // All elements in `self.octets` must be big endian. + // SAFETY: `[u8; 16]` is always safe to transmute to `[u16; 8]`. + let [a, b, c, d, e, f, g, h] = unsafe { transmute::<_, [u16; 8]>(self.octets) }; + // We want native endian u16 + [ + u16::from_be(a), + u16::from_be(b), + u16::from_be(c), + u16::from_be(d), + u16::from_be(e), + u16::from_be(f), + u16::from_be(g), + u16::from_be(h), + ] + } + + /// Returns [`true`] for the special 'unspecified' address (`::`). + /// + /// This property is defined in [IETF RFC 4291]. + /// + /// [IETF RFC 4291]: https://tools.ietf.org/html/rfc4291 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unspecified(), false); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0).is_unspecified(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_unspecified(&self) -> bool { + u128::from_be_bytes(self.octets()) == u128::from_be_bytes(Ipv6Addr::UNSPECIFIED.octets()) + } + + /// Returns [`true`] if this is the [loopback address] (`::1`), + /// as defined in [IETF RFC 4291 section 2.5.3]. + /// + /// Contrary to IPv4, in IPv6 there is only one loopback address. + /// + /// [loopback address]: Ipv6Addr::LOCALHOST + /// [IETF RFC 4291 section 2.5.3]: https://tools.ietf.org/html/rfc4291#section-2.5.3 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_loopback(), false); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 0x1).is_loopback(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_loopback(&self) -> bool { + u128::from_be_bytes(self.octets()) == u128::from_be_bytes(Ipv6Addr::LOCALHOST.octets()) + } + + /// Returns [`true`] if the address appears to be globally reachable + /// as specified by the [IANA IPv6 Special-Purpose Address Registry]. + /// Whether or not an address is practically reachable will depend on your network configuration. + /// + /// Most IPv6 addresses are globally reachable; + /// unless they are specifically defined as *not* globally reachable. + /// + /// Non-exhaustive list of notable addresses that are not globally reachable: + /// - The [unspecified address] ([`is_unspecified`](Ipv6Addr::is_unspecified)) + /// - The [loopback address] ([`is_loopback`](Ipv6Addr::is_loopback)) + /// - IPv4-mapped addresses + /// - Addresses reserved for benchmarking + /// - Addresses reserved for documentation ([`is_documentation`](Ipv6Addr::is_documentation)) + /// - Unique local addresses ([`is_unique_local`](Ipv6Addr::is_unique_local)) + /// - Unicast addresses with link-local scope ([`is_unicast_link_local`](Ipv6Addr::is_unicast_link_local)) + /// + /// For the complete overview of which addresses are globally reachable, see the table at the [IANA IPv6 Special-Purpose Address Registry]. + /// + /// Note that an address having global scope is not the same as being globally reachable, + /// and there is no direct relation between the two concepts: There exist addresses with global scope + /// that are not globally reachable (for example unique local addresses), + /// and addresses that are globally reachable without having global scope + /// (multicast addresses with non-global scope). + /// + /// [IANA IPv6 Special-Purpose Address Registry]: https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml + /// [unspecified address]: Ipv6Addr::UNSPECIFIED + /// [loopback address]: Ipv6Addr::LOCALHOST + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// // Most IPv6 addresses are globally reachable: + /// assert_eq!(Ipv6Addr::new(0x26, 0, 0x1c9, 0, 0, 0xafc8, 0x10, 0x1).is_global(), true); + /// + /// // However some addresses have been assigned a special meaning + /// // that makes them not globally reachable. Some examples are: + /// + /// // The unspecified address (`::`) + /// assert_eq!(Ipv6Addr::UNSPECIFIED.is_global(), false); + /// + /// // The loopback address (`::1`) + /// assert_eq!(Ipv6Addr::LOCALHOST.is_global(), false); + /// + /// // IPv4-mapped addresses (`::ffff:0:0/96`) + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_global(), false); + /// + /// // Addresses reserved for benchmarking (`2001:2::/48`) + /// assert_eq!(Ipv6Addr::new(0x2001, 2, 0, 0, 0, 0, 0, 1,).is_global(), false); + /// + /// // Addresses reserved for documentation (`2001:db8::/32`) + /// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 1).is_global(), false); + /// + /// // Unique local addresses (`fc00::/7`) + /// assert_eq!(Ipv6Addr::new(0xfc02, 0, 0, 0, 0, 0, 0, 1).is_global(), false); + /// + /// // Unicast addresses with link-local scope (`fe80::/10`) + /// assert_eq!(Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 1).is_global(), false); + /// + /// // For a complete overview see the IANA IPv6 Special-Purpose Address Registry. + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_global(&self) -> bool { + !(self.is_unspecified() + || self.is_loopback() + // IPv4-mapped Address (`::ffff:0:0/96`) + || matches!(self.segments(), [0, 0, 0, 0, 0, 0xffff, _, _]) + // IPv4-IPv6 Translat. (`64:ff9b:1::/48`) + || matches!(self.segments(), [0x64, 0xff9b, 1, _, _, _, _, _]) + // Discard-Only Address Block (`100::/64`) + || matches!(self.segments(), [0x100, 0, 0, 0, _, _, _, _]) + // IETF Protocol Assignments (`2001::/23`) + || (matches!(self.segments(), [0x2001, b, _, _, _, _, _, _] if b < 0x200) + && !( + // Port Control Protocol Anycast (`2001:1::1`) + u128::from_be_bytes(self.octets()) == 0x2001_0001_0000_0000_0000_0000_0000_0001 + // Traversal Using Relays around NAT Anycast (`2001:1::2`) + || u128::from_be_bytes(self.octets()) == 0x2001_0001_0000_0000_0000_0000_0000_0002 + // AMT (`2001:3::/32`) + || matches!(self.segments(), [0x2001, 3, _, _, _, _, _, _]) + // AS112-v6 (`2001:4:112::/48`) + || matches!(self.segments(), [0x2001, 4, 0x112, _, _, _, _, _]) + // ORCHIDv2 (`2001:20::/28`) + || matches!(self.segments(), [0x2001, b, _, _, _, _, _, _] if b >= 0x20 && b <= 0x2F) + )) + || self.is_documentation() + || self.is_unique_local() + || self.is_unicast_link_local()) + } + + /// Returns [`true`] if this is a unique local address (`fc00::/7`). + /// + /// This property is defined in [IETF RFC 4193]. + /// + /// [IETF RFC 4193]: https://tools.ietf.org/html/rfc4193 + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unique_local(), false); + /// assert_eq!(Ipv6Addr::new(0xfc02, 0, 0, 0, 0, 0, 0, 0).is_unique_local(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_unique_local(&self) -> bool { + (self.segments()[0] & 0xfe00) == 0xfc00 + } + + /// Returns [`true`] if this is a unicast address, as defined by [IETF RFC 4291]. + /// Any address that is not a [multicast address] (`ff00::/8`) is unicast. + /// + /// [IETF RFC 4291]: https://tools.ietf.org/html/rfc4291 + /// [multicast address]: Ipv6Addr::is_multicast + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// // The unspecified and loopback addresses are unicast. + /// assert_eq!(Ipv6Addr::UNSPECIFIED.is_unicast(), true); + /// assert_eq!(Ipv6Addr::LOCALHOST.is_unicast(), true); + /// + /// // Any address that is not a multicast address (`ff00::/8`) is unicast. + /// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast(), true); + /// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).is_unicast(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_unicast(&self) -> bool { + !self.is_multicast() + } + + /// Returns `true` if the address is a unicast address with link-local scope, + /// as defined in [RFC 4291]. + /// + /// A unicast address has link-local scope if it has the prefix `fe80::/10`, as per [RFC 4291 section 2.4]. + /// Note that this encompasses more addresses than those defined in [RFC 4291 section 2.5.6], + /// which describes "Link-Local IPv6 Unicast Addresses" as having the following stricter format: + /// + /// ```text + /// | 10 bits | 54 bits | 64 bits | + /// +----------+-------------------------+----------------------------+ + /// |1111111010| 0 | interface ID | + /// +----------+-------------------------+----------------------------+ + /// ``` + /// So while currently the only addresses with link-local scope an application will encounter are all in `fe80::/64`, + /// this might change in the future with the publication of new standards. More addresses in `fe80::/10` could be allocated, + /// and those addresses will have link-local scope. + /// + /// Also note that while [RFC 4291 section 2.5.3] mentions about the [loopback address] (`::1`) that "it is treated as having Link-Local scope", + /// this does not mean that the loopback address actually has link-local scope and this method will return `false` on it. + /// + /// [RFC 4291]: https://tools.ietf.org/html/rfc4291 + /// [RFC 4291 section 2.4]: https://tools.ietf.org/html/rfc4291#section-2.4 + /// [RFC 4291 section 2.5.3]: https://tools.ietf.org/html/rfc4291#section-2.5.3 + /// [RFC 4291 section 2.5.6]: https://tools.ietf.org/html/rfc4291#section-2.5.6 + /// [loopback address]: Ipv6Addr::LOCALHOST + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// // The loopback address (`::1`) does not actually have link-local scope. + /// assert_eq!(Ipv6Addr::LOCALHOST.is_unicast_link_local(), false); + /// + /// // Only addresses in `fe80::/10` have link-local scope. + /// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast_link_local(), false); + /// assert_eq!(Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 0).is_unicast_link_local(), true); + /// + /// // Addresses outside the stricter `fe80::/64` also have link-local scope. + /// assert_eq!(Ipv6Addr::new(0xfe80, 0, 0, 1, 0, 0, 0, 0).is_unicast_link_local(), true); + /// assert_eq!(Ipv6Addr::new(0xfe81, 0, 0, 0, 0, 0, 0, 0).is_unicast_link_local(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_unicast_link_local(&self) -> bool { + (self.segments()[0] & 0xffc0) == 0xfe80 + } + + /// Returns [`true`] if this is an address reserved for documentation + /// (`2001:db8::/32`). + /// + /// This property is defined in [IETF RFC 3849]. + /// + /// [IETF RFC 3849]: https://tools.ietf.org/html/rfc3849 + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_documentation(), false); + /// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_documentation(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_documentation(&self) -> bool { + (self.segments()[0] == 0x2001) && (self.segments()[1] == 0xdb8) + } + + /// Returns [`true`] if this is an address reserved for benchmarking (`2001:2::/48`). + /// + /// This property is defined in [IETF RFC 5180], where it is mistakenly specified as covering the range `2001:0200::/48`. + /// This is corrected in [IETF RFC Errata 1752] to `2001:0002::/48`. + /// + /// [IETF RFC 5180]: https://tools.ietf.org/html/rfc5180 + /// [IETF RFC Errata 1752]: https://www.rfc-editor.org/errata_search.php?eid=1752 + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc613, 0x0).is_benchmarking(), false); + /// assert_eq!(Ipv6Addr::new(0x2001, 0x2, 0, 0, 0, 0, 0, 0).is_benchmarking(), true); + /// ``` + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_benchmarking(&self) -> bool { + (self.segments()[0] == 0x2001) && (self.segments()[1] == 0x2) && (self.segments()[2] == 0) + } + + /// Returns [`true`] if the address is a globally routable unicast address. + /// + /// The following return false: + /// + /// - the loopback address + /// - the link-local addresses + /// - unique local addresses + /// - the unspecified address + /// - the address range reserved for documentation + /// + /// This method returns [`true`] for site-local addresses as per [RFC 4291 section 2.5.7] + /// + /// ```no_rust + /// The special behavior of [the site-local unicast] prefix defined in [RFC3513] must no longer + /// be supported in new implementations (i.e., new implementations must treat this prefix as + /// Global Unicast). + /// ``` + /// + /// [RFC 4291 section 2.5.7]: https://tools.ietf.org/html/rfc4291#section-2.5.7 + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0x2001, 0xdb8, 0, 0, 0, 0, 0, 0).is_unicast_global(), false); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_unicast_global(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn is_unicast_global(&self) -> bool { + self.is_unicast() + && !self.is_loopback() + && !self.is_unicast_link_local() + && !self.is_unique_local() + && !self.is_unspecified() + && !self.is_documentation() + && !self.is_benchmarking() + } + + /// Returns the address's multicast scope if the address is multicast. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// + /// use std::net::{Ipv6Addr, Ipv6MulticastScope}; + /// + /// assert_eq!( + /// Ipv6Addr::new(0xff0e, 0, 0, 0, 0, 0, 0, 0).multicast_scope(), + /// Some(Ipv6MulticastScope::Global) + /// ); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).multicast_scope(), None); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use] + #[inline] + pub const fn multicast_scope(&self) -> Option { + if self.is_multicast() { + match self.segments()[0] & 0x000f { + 1 => Some(Ipv6MulticastScope::InterfaceLocal), + 2 => Some(Ipv6MulticastScope::LinkLocal), + 3 => Some(Ipv6MulticastScope::RealmLocal), + 4 => Some(Ipv6MulticastScope::AdminLocal), + 5 => Some(Ipv6MulticastScope::SiteLocal), + 8 => Some(Ipv6MulticastScope::OrganizationLocal), + 14 => Some(Ipv6MulticastScope::Global), + _ => None, + } + } else { + None + } + } + + /// Returns [`true`] if this is a multicast address (`ff00::/8`). + /// + /// This property is defined by [IETF RFC 4291]. + /// + /// [IETF RFC 4291]: https://tools.ietf.org/html/rfc4291 + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).is_multicast(), true); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).is_multicast(), false); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(since = "1.7.0", feature = "ip_17"))] + #[must_use] + #[inline] + pub const fn is_multicast(&self) -> bool { + (self.segments()[0] & 0xff00) == 0xff00 + } + + /// Converts this address to an [`IPv4` address] if it's an [IPv4-mapped] address, + /// as defined in [IETF RFC 4291 section 2.5.5.2], otherwise returns [`None`]. + /// + /// `::ffff:a.b.c.d` becomes `a.b.c.d`. + /// All addresses *not* starting with `::ffff` will return `None`. + /// + /// [`IPv4` address]: Ipv4Addr + /// [IPv4-mapped]: Ipv6Addr + /// [IETF RFC 4291 section 2.5.5.2]: https://tools.ietf.org/html/rfc4291#section-2.5.5.2 + /// + /// # Examples + /// + /// ``` + /// use std::net::{Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).to_ipv4_mapped(), None); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).to_ipv4_mapped(), + /// Some(Ipv4Addr::new(192, 10, 2, 255))); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1).to_ipv4_mapped(), None); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, stable(feature = "ipv6_to_ipv4_mapped", since = "1.63.0"))] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[inline] + pub const fn to_ipv4_mapped(&self) -> Option { + match self.octets() { + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, a, b, c, d] => { + Some(Ipv4Addr::new(a, b, c, d)) + } + _ => None, + } + } + + /// Converts this address to an [`IPv4` address] if it is either + /// an [IPv4-compatible] address as defined in [IETF RFC 4291 section 2.5.5.1], + /// or an [IPv4-mapped] address as defined in [IETF RFC 4291 section 2.5.5.2], + /// otherwise returns [`None`]. + /// + /// Note that this will return an [`IPv4` address] for the IPv6 loopback address `::1`. Use + /// [`Ipv6Addr::to_ipv4_mapped`] to avoid this. + /// + /// `::a.b.c.d` and `::ffff:a.b.c.d` become `a.b.c.d`. `::1` becomes `0.0.0.1`. + /// All addresses *not* starting with either all zeroes or `::ffff` will return `None`. + /// + /// [`IPv4` address]: Ipv4Addr + /// [IPv4-compatible]: Ipv6Addr#ipv4-compatible-ipv6-addresses + /// [IPv4-mapped]: Ipv6Addr#ipv4-mapped-ipv6-addresses + /// [IETF RFC 4291 section 2.5.5.1]: https://tools.ietf.org/html/rfc4291#section-2.5.5.1 + /// [IETF RFC 4291 section 2.5.5.2]: https://tools.ietf.org/html/rfc4291#section-2.5.5.2 + /// + /// # Examples + /// + /// ``` + /// use std::net::{Ipv4Addr, Ipv6Addr}; + /// + /// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).to_ipv4(), None); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0xc00a, 0x2ff).to_ipv4(), + /// Some(Ipv4Addr::new(192, 10, 2, 255))); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1).to_ipv4(), + /// Some(Ipv4Addr::new(0, 0, 0, 1))); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_50", since = "1.50.0") + )] + #[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[inline] + pub const fn to_ipv4(&self) -> Option { + if let [0, 0, 0, 0, 0, 0 | 0xffff, ab, cd] = self.segments() { + let [a, b] = ab.to_be_bytes(); + let [c, d] = cd.to_be_bytes(); + Some(Ipv4Addr::new(a, b, c, d)) + } else { + None + } + } + + /// Converts this address to an `IpAddr::V4` if it is an IPv4-mapped addresses, otherwise it + /// returns self wrapped in an `IpAddr::V6`. + /// + /// # Examples + /// + /// ``` + /// #![feature(ip)] + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0x7f00, 0x1).is_loopback(), false); + /// assert_eq!(Ipv6Addr::new(0, 0, 0, 0, 0, 0xffff, 0x7f00, 0x1).to_canonical().is_loopback(), true); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_unstable(feature = "const_ipv6", issue = "76205") + )] + #[cfg_attr(staged_api, unstable(feature = "ip", issue = "27709"))] + #[must_use = "this returns the result of the operation, \ + without modifying the original"] + #[inline] + pub const fn to_canonical(&self) -> IpAddr { + if let Some(mapped) = self.to_ipv4_mapped() { + return IpAddr::V4(mapped); + } + IpAddr::V6(*self) + } + + /// Returns the sixteen eight-bit integers the IPv6 address consists of. + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// assert_eq!(Ipv6Addr::new(0xff00, 0, 0, 0, 0, 0, 0, 0).octets(), + /// [255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + /// ``` + #[cfg_attr( + staged_api, + rustc_const_stable(feature = "const_ip_32", since = "1.32.0") + )] + #[cfg_attr(staged_api, stable(feature = "ipv6_to_octets", since = "1.12.0"))] + #[must_use] + #[inline] + pub const fn octets(&self) -> [u8; 16] { + self.octets + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialEq for Ipv6Addr { + #[inline] + fn eq(&self, other: &IpAddr) -> bool { + match other { + IpAddr::V4(_) => false, + IpAddr::V6(v6) => self == v6, + } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialEq for IpAddr { + #[inline] + fn eq(&self, other: &Ipv6Addr) -> bool { + match self { + IpAddr::V4(_) => false, + IpAddr::V6(v6) => v6 == other, + } + } +} + +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl PartialOrd for Ipv6Addr { + #[inline] + fn partial_cmp(&self, other: &Ipv6Addr) -> Option { + Some(self.cmp(other)) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialOrd for IpAddr { + #[inline] + fn partial_cmp(&self, other: &Ipv6Addr) -> Option { + match self { + IpAddr::V4(_) => Some(Ordering::Less), + IpAddr::V6(v6) => v6.partial_cmp(other), + } + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_cmp", since = "1.16.0"))] +impl PartialOrd for Ipv6Addr { + #[inline] + fn partial_cmp(&self, other: &IpAddr) -> Option { + match other { + IpAddr::V4(_) => Some(Ordering::Greater), + IpAddr::V6(v6) => self.partial_cmp(v6), + } + } +} + +#[cfg_attr(staged_api, stable(feature = "rust1", since = "1.0.0"))] +impl Ord for Ipv6Addr { + #[inline] + fn cmp(&self, other: &Ipv6Addr) -> Ordering { + self.segments().cmp(&other.segments()) + } +} + +#[cfg_attr(staged_api, stable(feature = "i128", since = "1.26.0"))] +impl From for u128 { + /// Convert an `Ipv6Addr` into a host byte order `u128`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::new( + /// 0x1020, 0x3040, 0x5060, 0x7080, + /// 0x90A0, 0xB0C0, 0xD0E0, 0xF00D, + /// ); + /// assert_eq!(0x102030405060708090A0B0C0D0E0F00D_u128, u128::from(addr)); + /// ``` + #[inline] + fn from(ip: Ipv6Addr) -> u128 { + u128::from_be_bytes(ip.octets) + } +} +#[cfg_attr(staged_api, stable(feature = "i128", since = "1.26.0"))] +impl From for Ipv6Addr { + /// Convert a host byte order `u128` into an `Ipv6Addr`. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::from(0x102030405060708090A0B0C0D0E0F00D_u128); + /// assert_eq!( + /// Ipv6Addr::new( + /// 0x1020, 0x3040, 0x5060, 0x7080, + /// 0x90A0, 0xB0C0, 0xD0E0, 0xF00D, + /// ), + /// addr); + /// ``` + #[inline] + fn from(ip: u128) -> Ipv6Addr { + Ipv6Addr::from(ip.to_be_bytes()) + } +} + +#[cfg_attr(staged_api, stable(feature = "ipv6_from_octets", since = "1.9.0"))] +impl From<[u8; 16]> for Ipv6Addr { + /// Creates an `Ipv6Addr` from a sixteen element byte array. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::from([ + /// 25u8, 24u8, 23u8, 22u8, 21u8, 20u8, 19u8, 18u8, + /// 17u8, 16u8, 15u8, 14u8, 13u8, 12u8, 11u8, 10u8, + /// ]); + /// assert_eq!( + /// Ipv6Addr::new( + /// 0x1918, 0x1716, + /// 0x1514, 0x1312, + /// 0x1110, 0x0f0e, + /// 0x0d0c, 0x0b0a + /// ), + /// addr + /// ); + /// ``` + #[inline] + fn from(octets: [u8; 16]) -> Ipv6Addr { + Ipv6Addr { octets } + } +} + +#[cfg_attr(staged_api, stable(feature = "ipv6_from_segments", since = "1.16.0"))] +impl From<[u16; 8]> for Ipv6Addr { + /// Creates an `Ipv6Addr` from an eight element 16-bit array. + /// + /// # Examples + /// + /// ``` + /// use std::net::Ipv6Addr; + /// + /// let addr = Ipv6Addr::from([ + /// 525u16, 524u16, 523u16, 522u16, + /// 521u16, 520u16, 519u16, 518u16, + /// ]); + /// assert_eq!( + /// Ipv6Addr::new( + /// 0x20d, 0x20c, + /// 0x20b, 0x20a, + /// 0x209, 0x208, + /// 0x207, 0x206 + /// ), + /// addr + /// ); + /// ``` + #[inline] + fn from(segments: [u16; 8]) -> Ipv6Addr { + let [a, b, c, d, e, f, g, h] = segments; + Ipv6Addr::new(a, b, c, d, e, f, g, h) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_slice", since = "1.17.0"))] +impl From<[u8; 16]> for IpAddr { + /// Creates an `IpAddr::V6` from a sixteen element byte array. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv6Addr}; + /// + /// let addr = IpAddr::from([ + /// 25u8, 24u8, 23u8, 22u8, 21u8, 20u8, 19u8, 18u8, + /// 17u8, 16u8, 15u8, 14u8, 13u8, 12u8, 11u8, 10u8, + /// ]); + /// assert_eq!( + /// IpAddr::V6(Ipv6Addr::new( + /// 0x1918, 0x1716, + /// 0x1514, 0x1312, + /// 0x1110, 0x0f0e, + /// 0x0d0c, 0x0b0a + /// )), + /// addr + /// ); + /// ``` + #[inline] + fn from(octets: [u8; 16]) -> IpAddr { + IpAddr::V6(Ipv6Addr::from(octets)) + } +} + +#[cfg_attr(staged_api, stable(feature = "ip_from_slice", since = "1.17.0"))] +impl From<[u16; 8]> for IpAddr { + /// Creates an `IpAddr::V6` from an eight element 16-bit array. + /// + /// # Examples + /// + /// ``` + /// use std::net::{IpAddr, Ipv6Addr}; + /// + /// let addr = IpAddr::from([ + /// 525u16, 524u16, 523u16, 522u16, + /// 521u16, 520u16, 519u16, 518u16, + /// ]); + /// assert_eq!( + /// IpAddr::V6(Ipv6Addr::new( + /// 0x20d, 0x20c, + /// 0x20b, 0x20a, + /// 0x209, 0x208, + /// 0x207, 0x206 + /// )), + /// addr + /// ); + /// ``` + #[inline] + fn from(segments: [u16; 8]) -> IpAddr { + IpAddr::V6(Ipv6Addr::from(segments)) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,48 @@ +//! 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/latest/x86_64-pc-windows-msvc/rustix/net/fn.wsa_startup.html +//! [`wsa_cleanup`]: https://docs.rs/rustix/latest/x86_64-pc-windows-msvc/rustix/net/fn.wsa_cleanup.html + +#[cfg(not(feature = "std"))] +mod addr; +#[cfg(not(feature = "std"))] +mod ip; +mod send_recv; +mod socket; +mod socket_addr_any; +#[cfg(not(any(windows, target_os = "wasi")))] +mod socketpair; +#[cfg(windows)] +mod wsa; + +pub mod sockopt; + +pub use send_recv::{ + recv, recvfrom, send, sendto, sendto_any, sendto_v4, sendto_v6, RecvFlags, SendFlags, +}; +pub use socket::{ + accept, accept_with, acceptfrom, acceptfrom_with, bind, bind_any, bind_v4, bind_v6, connect, + connect_any, connect_v4, connect_v6, getpeername, getsockname, listen, shutdown, socket, + socket_with, AcceptFlags, AddressFamily, Protocol, Shutdown, SocketFlags, SocketType, +}; +pub use socket_addr_any::{SocketAddrAny, SocketAddrStorage}; +#[cfg(not(any(windows, target_os = "wasi")))] +pub use socketpair::socketpair; +#[cfg(feature = "std")] +pub use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; +#[cfg(windows)] +pub use wsa::{wsa_cleanup, wsa_startup}; +#[cfg(not(feature = "std"))] +pub use { + addr::{SocketAddr, SocketAddrV4, SocketAddrV6}, + ip::{IpAddr, Ipv4Addr, Ipv6Addr, Ipv6MulticastScope}, +}; +#[cfg(unix)] +pub use { + send_recv::sendto_unix, + socket::{bind_unix, connect_unix, SocketAddrUnix}, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/send_recv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/send_recv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/send_recv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/send_recv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,210 @@ +//! `recv` and `send`, and variants. + +#[cfg(unix)] +use crate::net::SocketAddrUnix; +use crate::net::{SocketAddr, SocketAddrAny, SocketAddrV4, SocketAddrV6}; +use crate::{backend, io}; +use backend::fd::{AsFd, BorrowedFd}; + +pub use backend::net::send_recv::{RecvFlags, SendFlags}; + +/// `recv(fd, buf, flags)`—Reads data from a socket. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-recv +#[inline] +pub fn recv(fd: Fd, buf: &mut [u8], flags: RecvFlags) -> io::Result { + backend::net::syscalls::recv(fd.as_fd(), buf, flags) +} + +/// `send(fd, buf, flags)`—Writes data to a socket. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-send +#[inline] +pub fn send(fd: Fd, buf: &[u8], flags: SendFlags) -> io::Result { + 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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-recvfrom +#[inline] +pub fn recvfrom( + fd: Fd, + buf: &mut [u8], + flags: RecvFlags, +) -> io::Result<(usize, Option)> { + backend::net::syscalls::recvfrom(fd.as_fd(), buf, flags) +} + +/// `sendto(fd, buf, flags, addr)`—Writes data to a socket to a specific IP +/// address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto +pub fn sendto( + fd: Fd, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddr, +) -> io::Result { + _sendto(fd.as_fd(), buf, flags, addr) +} + +fn _sendto( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddr, +) -> io::Result { + match addr { + SocketAddr::V4(v4) => backend::net::syscalls::sendto_v4(fd, buf, flags, v4), + SocketAddr::V6(v6) => backend::net::syscalls::sendto_v6(fd, buf, flags, v6), + } +} + +/// `sendto(fd, buf, flags, addr)`—Writes data to a socket to a specific +/// address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto +pub fn sendto_any( + fd: Fd, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrAny, +) -> io::Result { + _sendto_any(fd.as_fd(), buf, flags, addr) +} + +fn _sendto_any( + fd: BorrowedFd<'_>, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrAny, +) -> io::Result { + match addr { + SocketAddrAny::V4(v4) => backend::net::syscalls::sendto_v4(fd, buf, flags, v4), + SocketAddrAny::V6(v6) => backend::net::syscalls::sendto_v6(fd, buf, flags, v6), + #[cfg(unix)] + SocketAddrAny::Unix(unix) => backend::net::syscalls::sendto_unix(fd, buf, flags, unix), + } +} + +/// `sendto(fd, buf, flags, addr, sizeof(struct sockaddr_in))`—Writes data to +/// a socket to a specific IPv4 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto +#[inline] +#[doc(alias = "sendto")] +pub fn sendto_v4( + fd: Fd, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV4, +) -> io::Result { + backend::net::syscalls::sendto_v4(fd.as_fd(), buf, flags, addr) +} + +/// `sendto(fd, buf, flags, addr, sizeof(struct sockaddr_in6))`—Writes data +/// to a socket to a specific IPv6 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto +#[inline] +#[doc(alias = "sendto")] +pub fn sendto_v6( + fd: Fd, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrV6, +) -> io::Result { + backend::net::syscalls::sendto_v6(fd.as_fd(), buf, flags, addr) +} + +/// `sendto(fd, buf, flags, addr, sizeof(struct sockaddr_un))`—Writes data to +/// a socket to a specific Unix-domain socket address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-sendto +#[cfg(unix)] +#[inline] +#[doc(alias = "sendto")] +pub fn sendto_unix( + fd: Fd, + buf: &[u8], + flags: SendFlags, + addr: &SocketAddrUnix, +) -> io::Result { + backend::net::syscalls::sendto_unix(fd.as_fd(), buf, flags, addr) +} + +// TODO: `recvmsg`, `sendmsg` diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket_addr_any.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket_addr_any.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket_addr_any.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket_addr_any.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,103 @@ +//! A socket address for any kind of socket. +//! +//! This is similar to [`std::net::SocketAddr`], but also supports Unix-domain +//! socket addresses. +//! +//! # Safety +//! +//! The `read` and `write` functions allow decoding and encoding from and to +//! OS-specific socket address representations in memory. +#![allow(unsafe_code)] + +#[cfg(unix)] +use crate::net::SocketAddrUnix; +use crate::net::{AddressFamily, SocketAddrV4, SocketAddrV6}; +use crate::{backend, io}; +#[cfg(feature = "std")] +use core::fmt; + +pub use backend::net::addr::SocketAddrStorage; + +/// `struct sockaddr_storage` as a Rust enum. +#[derive(Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] +#[doc(alias = "sockaddr")] +#[non_exhaustive] +pub enum SocketAddrAny { + /// `struct sockaddr_in` + V4(SocketAddrV4), + /// `struct sockaddr_in6` + V6(SocketAddrV6), + /// `struct sockaddr_un` + #[cfg(unix)] + Unix(SocketAddrUnix), +} + +impl From for SocketAddrAny { + #[inline] + fn from(from: SocketAddrV4) -> Self { + Self::V4(from) + } +} + +impl From for SocketAddrAny { + #[inline] + fn from(from: SocketAddrV6) -> Self { + Self::V6(from) + } +} + +#[cfg(unix)] +impl From for SocketAddrAny { + #[inline] + fn from(from: SocketAddrUnix) -> Self { + Self::Unix(from) + } +} + +impl SocketAddrAny { + /// Return the address family of this socket address. + #[inline] + pub const fn address_family(&self) -> AddressFamily { + match self { + Self::V4(_) => AddressFamily::INET, + Self::V6(_) => AddressFamily::INET6, + #[cfg(unix)] + Self::Unix(_) => AddressFamily::UNIX, + } + } + + /// Writes a platform-specific encoding of this socket address to + /// the memory pointed to by `storage`, and returns the number of + /// bytes used. + /// + /// # Safety + /// + /// `storage` must point to valid memory for encoding the socket + /// address. + pub unsafe fn write(&self, storage: *mut SocketAddrStorage) -> usize { + backend::net::write_sockaddr::write_sockaddr(self, storage) + } + + /// Reads a platform-specific encoding of a socket address from + /// the memory pointed to by `storage`, which uses `len` bytes. + /// + /// # Safety + /// + /// `storage` must point to valid memory for decoding a socket + /// address. + pub unsafe fn read(storage: *const SocketAddrStorage, len: usize) -> io::Result { + backend::net::read_sockaddr::read_sockaddr(storage, len) + } +} + +#[cfg(feature = "std")] +impl fmt::Debug for SocketAddrAny { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::V4(v4) => v4.fmt(fmt), + Self::V6(v6) => v6.fmt(fmt), + #[cfg(unix)] + Self::Unix(unix) => unix.fmt(fmt), + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socketpair.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socketpair.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socketpair.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socketpair.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,21 @@ +use crate::fd::OwnedFd; +use crate::net::{AddressFamily, Protocol, SocketFlags, SocketType}; +use crate::{backend, io}; + +/// `socketpair(domain, type_ | accept_flags, protocol)` +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/socketpair.html +/// [Linux]: https://man7.org/linux/man-pages/man2/socketpair.2.html +#[inline] +pub fn socketpair( + domain: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: Protocol, +) -> io::Result<(OwnedFd, OwnedFd)> { + backend::net::syscalls::socketpair(domain, type_, flags, protocol) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/socket.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,441 @@ +use crate::fd::OwnedFd; +use crate::net::{SocketAddr, SocketAddrAny, SocketAddrV4, SocketAddrV6}; +use crate::{backend, io}; +use backend::fd::{AsFd, BorrowedFd}; + +#[cfg(unix)] +pub use backend::net::addr::SocketAddrUnix; +pub use backend::net::types::{ + AcceptFlags, AddressFamily, Protocol, Shutdown, SocketFlags, SocketType, +}; + +impl Default for Protocol { + #[inline] + fn default() -> Self { + Self::IP + } +} + +/// `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`], use [`socket_with`]. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket +#[inline] +pub fn socket(domain: AddressFamily, type_: SocketType, protocol: Protocol) -> io::Result { + 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 +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-socket +#[inline] +pub fn socket_with( + domain: AddressFamily, + type_: SocketType, + flags: SocketFlags, + protocol: Protocol, +) -> io::Result { + backend::net::syscalls::socket_with(domain, type_, flags, protocol) +} + +/// `bind(sockfd, addr)`—Binds a socket to an IP address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind +pub fn bind(sockfd: Fd, addr: &SocketAddr) -> io::Result<()> { + _bind(sockfd.as_fd(), addr) +} + +fn _bind(sockfd: BorrowedFd<'_>, addr: &SocketAddr) -> io::Result<()> { + match addr { + SocketAddr::V4(v4) => backend::net::syscalls::bind_v4(sockfd, v4), + SocketAddr::V6(v6) => backend::net::syscalls::bind_v6(sockfd, v6), + } +} + +/// `bind(sockfd, addr)`—Binds a socket to an address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind +#[doc(alias = "bind")] +pub fn bind_any(sockfd: Fd, addr: &SocketAddrAny) -> io::Result<()> { + _bind_any(sockfd.as_fd(), addr) +} + +fn _bind_any(sockfd: BorrowedFd<'_>, addr: &SocketAddrAny) -> io::Result<()> { + match addr { + SocketAddrAny::V4(v4) => backend::net::syscalls::bind_v4(sockfd, v4), + SocketAddrAny::V6(v6) => backend::net::syscalls::bind_v6(sockfd, v6), + #[cfg(unix)] + SocketAddrAny::Unix(unix) => backend::net::syscalls::bind_unix(sockfd, unix), + } +} + +/// `bind(sockfd, addr, sizeof(struct sockaddr_in))`—Binds a socket to an +/// IPv4 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind +#[inline] +#[doc(alias = "bind")] +pub fn bind_v4(sockfd: Fd, addr: &SocketAddrV4) -> io::Result<()> { + backend::net::syscalls::bind_v4(sockfd.as_fd(), addr) +} + +/// `bind(sockfd, addr, sizeof(struct sockaddr_in6))`—Binds a socket to an +/// IPv6 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind +#[inline] +#[doc(alias = "bind")] +pub fn bind_v6(sockfd: Fd, addr: &SocketAddrV6) -> io::Result<()> { + backend::net::syscalls::bind_v6(sockfd.as_fd(), addr) +} + +/// `bind(sockfd, addr, sizeof(struct sockaddr_un))`—Binds a socket to a +/// Unix-domain address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-bind +#[cfg(unix)] +#[inline] +#[doc(alias = "bind")] +pub fn bind_unix(sockfd: Fd, addr: &SocketAddrUnix) -> io::Result<()> { + backend::net::syscalls::bind_unix(sockfd.as_fd(), addr) +} + +/// `connect(sockfd, addr)`—Initiates a connection to an IP address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect +pub fn connect(sockfd: Fd, addr: &SocketAddr) -> io::Result<()> { + _connect(sockfd.as_fd(), addr) +} + +fn _connect(sockfd: BorrowedFd<'_>, addr: &SocketAddr) -> io::Result<()> { + match addr { + SocketAddr::V4(v4) => backend::net::syscalls::connect_v4(sockfd, v4), + SocketAddr::V6(v6) => backend::net::syscalls::connect_v6(sockfd, v6), + } +} + +/// `connect(sockfd, addr)`—Initiates a connection. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect +#[doc(alias = "connect")] +pub fn connect_any(sockfd: Fd, addr: &SocketAddrAny) -> io::Result<()> { + _connect_any(sockfd.as_fd(), addr) +} + +fn _connect_any(sockfd: BorrowedFd<'_>, addr: &SocketAddrAny) -> io::Result<()> { + match addr { + SocketAddrAny::V4(v4) => backend::net::syscalls::connect_v4(sockfd, v4), + SocketAddrAny::V6(v6) => backend::net::syscalls::connect_v6(sockfd, v6), + #[cfg(unix)] + SocketAddrAny::Unix(unix) => backend::net::syscalls::connect_unix(sockfd, unix), + } +} + +/// `connect(sockfd, addr, sizeof(struct sockaddr_in))`—Initiates a +/// connection to an IPv4 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect +#[inline] +#[doc(alias = "connect")] +pub fn connect_v4(sockfd: Fd, addr: &SocketAddrV4) -> io::Result<()> { + backend::net::syscalls::connect_v4(sockfd.as_fd(), addr) +} + +/// `connect(sockfd, addr, sizeof(struct sockaddr_in6))`—Initiates a +/// connection to an IPv6 address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect +#[inline] +#[doc(alias = "connect")] +pub fn connect_v6(sockfd: Fd, addr: &SocketAddrV6) -> io::Result<()> { + backend::net::syscalls::connect_v6(sockfd.as_fd(), addr) +} + +/// `connect(sockfd, addr, sizeof(struct sockaddr_un))`—Initiates a +/// connection to a Unix-domain address. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-connect +#[cfg(unix)] +#[inline] +#[doc(alias = "connect")] +pub fn connect_unix(sockfd: Fd, addr: &SocketAddrUnix) -> io::Result<()> { + backend::net::syscalls::connect_unix(sockfd.as_fd(), addr) +} + +/// `listen(fd, backlog)`—Enables listening for incoming connections. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen +#[inline] +pub fn listen(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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-accept +#[inline] +#[doc(alias = "accept4")] +pub fn accept(sockfd: Fd) -> io::Result { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/accept4.2.html +#[inline] +#[doc(alias = "accept4")] +pub fn accept_with(sockfd: Fd, flags: AcceptFlags) -> io::Result { + 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. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-accept +#[inline] +#[doc(alias = "accept4")] +pub fn acceptfrom(sockfd: Fd) -> io::Result<(OwnedFd, Option)> { + 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] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/accept4.2.html +#[inline] +#[doc(alias = "accept4")] +pub fn acceptfrom_with( + sockfd: Fd, + flags: AcceptFlags, +) -> io::Result<(OwnedFd, Option)> { + backend::net::syscalls::acceptfrom_with(sockfd.as_fd(), flags) +} + +/// `shutdown(fd, how)`—Closes the read and/or write sides of a stream. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-shutdown +#[inline] +pub fn shutdown(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] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockname +#[inline] +pub fn getsockname(sockfd: Fd) -> io::Result { + backend::net::syscalls::getsockname(sockfd.as_fd()) +} + +/// `getpeername(fd, addr, len)`—Returns the address a socket is connected +/// to. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// - [Apple] +/// - [Winsock2] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getpeername +#[inline] +pub fn getpeername(sockfd: Fd) -> io::Result> { + backend::net::syscalls::getpeername(sockfd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/sockopt.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/sockopt.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/sockopt.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/sockopt.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,644 @@ +//! `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. + +#![doc(alias = "getsockopt")] +#![doc(alias = "setsockopt")] + +use crate::net::{Ipv4Addr, Ipv6Addr, SocketType}; +use crate::{backend, io}; +use backend::fd::AsFd; +use core::time::Duration; + +pub use backend::net::types::Timeout; + +/// `getsockopt(fd, SOL_SOCKET, SO_TYPE)`—Returns the type of a socket. +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `getsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_TYPE")] +pub fn get_socket_type(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_socket_type(fd.as_fd()) +} + +/// `setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, value)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `setsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_REUSEADDR")] +pub fn set_socket_reuseaddr(fd: Fd, value: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_socket_reuseaddr(fd.as_fd(), value) +} + +/// `setsockopt(fd, SOL_SOCKET, SO_BROADCAST, broadcast)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `setsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_BROADCAST")] +pub fn set_socket_broadcast(fd: Fd, broadcast: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_socket_broadcast(fd.as_fd(), broadcast) +} + +/// `getsockopt(fd, SOL_SOCKET, SO_BROADCAST)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `getsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_BROADCAST")] +pub fn get_socket_broadcast(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_socket_broadcast(fd.as_fd()) +} + +/// `setsockopt(fd, SOL_SOCKET, SO_LINGER, linger)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `setsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_LINGER")] +pub fn set_socket_linger(fd: Fd, linger: Option) -> io::Result<()> { + backend::net::syscalls::sockopt::set_socket_linger(fd.as_fd(), linger) +} + +/// `getsockopt(fd, SOL_SOCKET, SO_LINGER)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `getsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_LINGER")] +pub fn get_socket_linger(fd: Fd) -> io::Result> { + backend::net::syscalls::sockopt::get_socket_linger(fd.as_fd()) +} + +/// `setsockopt(fd, SOL_SOCKET, SO_PASSCRED, passcred)` +/// +/// # References +/// - [Linux `setsockopt`] +/// - [Linux `socket`] +/// +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +#[doc(alias = "SO_PASSCRED")] +pub fn set_socket_passcred(fd: Fd, passcred: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_socket_passcred(fd.as_fd(), passcred) +} + +/// `getsockopt(fd, SOL_SOCKET, SO_PASSCRED)` +/// +/// # References +/// - [Linux `getsockopt`] +/// - [Linux `socket`] +/// +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +#[doc(alias = "SO_PASSCRED")] +pub fn get_socket_passcred(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_socket_passcred(fd.as_fd()) +} + +/// `setsockopt(fd, SOL_SOCKET, id, timeout)`—Set the sending +/// or receiving timeout. +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `setsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_RCVTIMEO")] +#[doc(alias = "SO_SNDTIMEO")] +pub fn set_socket_timeout( + fd: Fd, + id: Timeout, + timeout: Option, +) -> io::Result<()> { + backend::net::syscalls::sockopt::set_socket_timeout(fd.as_fd(), id, timeout) +} + +/// `getsockopt(fd, SOL_SOCKET, id)`—Get the sending or receiving timeout. +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `sys/socket.h`] +/// - [Linux `getsockopt`] +/// - [Linux `socket`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `SOL_SOCKET` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `sys/socket.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `socket`]: https://man7.org/linux/man-pages/man7/socket.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `SOL_SOCKET` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options +#[inline] +#[doc(alias = "SO_RCVTIMEO")] +#[doc(alias = "SO_SNDTIMEO")] +pub fn get_socket_timeout(fd: Fd, id: Timeout) -> io::Result> { + backend::net::syscalls::sockopt::get_socket_timeout(fd.as_fd(), id) +} + +/// `setsockopt(fd, IPPROTO_IP, IP_TTL, ttl)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_TTL")] +pub fn set_ip_ttl(fd: Fd, ttl: u32) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ip_ttl(fd.as_fd(), ttl) +} + +/// `getsockopt(fd, IPPROTO_IP, IP_TTL)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_TTL")] +pub fn get_ip_ttl(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ip_ttl(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, only_v6)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_V6ONLY")] +pub fn set_ipv6_v6only(fd: Fd, only_v6: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ipv6_v6only(fd.as_fd(), only_v6) +} + +/// `getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_V6ONLY")] +pub fn get_ipv6_v6only(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ipv6_v6only(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, multicast_loop)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_LOOP")] +pub fn set_ip_multicast_loop(fd: Fd, multicast_loop: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ip_multicast_loop(fd.as_fd(), multicast_loop) +} + +/// `getsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_LOOP")] +pub fn get_ip_multicast_loop(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ip_multicast_loop(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, multicast_ttl)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_TTL")] +pub fn set_ip_multicast_ttl(fd: Fd, multicast_ttl: u32) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ip_multicast_ttl(fd.as_fd(), multicast_ttl) +} + +/// `getsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_TTL")] +pub fn get_ip_multicast_ttl(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ip_multicast_ttl(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, multicast_loop)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_MULTICAST_LOOP")] +pub fn set_ipv6_multicast_loop(fd: Fd, multicast_loop: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ipv6_multicast_loop(fd.as_fd(), multicast_loop) +} + +/// `getsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_MULTICAST_LOOP")] +pub fn get_ipv6_multicast_loop(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ipv6_multicast_loop(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IP, IPV6_MULTICAST_HOPS, multicast_hops)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_TTL")] +pub fn set_ipv6_multicast_hops(fd: Fd, multicast_hops: u32) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ipv6_multicast_hops(fd.as_fd(), multicast_hops) +} + +/// `getsockopt(fd, IPPROTO_IP, IPV6_MULTICAST_HOPS)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `getsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `getsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-getsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IP_MULTICAST_TTL")] +pub fn get_ipv6_multicast_hops(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_ipv6_multicast_hops(fd.as_fd()) +} + +/// `setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, multiaddr, interface)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_ADD_MEMBERSHIP")] +pub fn set_ip_add_membership( + fd: Fd, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, +) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ip_add_membership(fd.as_fd(), multiaddr, interface) +} + +/// `setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, multiaddr, interface)` +/// +/// `IPV6_ADD_MEMBERSHIP` is the same as `IPV6_JOIN_GROUP` in POSIX. +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ipv6] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_JOIN_GROUP")] +#[doc(alias = "IPV6_ADD_MEMBERSHIP")] +pub fn set_ipv6_add_membership( + fd: Fd, + multiaddr: &Ipv6Addr, + interface: u32, +) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ipv6_add_membership(fd.as_fd(), multiaddr, interface) +} + +/// `setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, multiaddr, interface)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ip`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ip`]: https://man7.org/linux/man-pages/man7/ip.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ip-socket-options +#[inline] +#[doc(alias = "IP_DROP_MEMBERSHIP")] +pub fn set_ip_drop_membership( + fd: Fd, + multiaddr: &Ipv4Addr, + interface: &Ipv4Addr, +) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ip_drop_membership(fd.as_fd(), multiaddr, interface) +} + +/// `setsockopt(fd, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, multiaddr, interface)` +/// +/// `IPV6_DROP_MEMBERSHIP` is the same as `IPV6_LEAVE_GROUP` in POSIX. +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/in.h`] +/// - [Linux `setsockopt`] +/// - [Linux `ipv6`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_IPV6` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/in.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `ipv6`]: https://man7.org/linux/man-pages/man7/ipv6.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_IPV6` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options +#[inline] +#[doc(alias = "IPV6_LEAVE_GROUP")] +#[doc(alias = "IPV6_DROP_MEMBERSHIP")] +pub fn set_ipv6_drop_membership( + fd: Fd, + multiaddr: &Ipv6Addr, + interface: u32, +) -> io::Result<()> { + backend::net::syscalls::sockopt::set_ipv6_drop_membership(fd.as_fd(), multiaddr, interface) +} + +/// `setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, nodelay)` +/// +/// # References +/// - [POSIX `setsockopt`] +/// - [POSIX `netinet/tcp.h`] +/// - [Linux `setsockopt`] +/// - [Linux `tcp`] +/// - [Winsock2 `setsockopt`] +/// - [Winsock2 `IPPROTO_TCP` options] +/// +/// [POSIX `setsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html +/// [POSIX `netinet/tcp.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_tcp.h.html +/// [Linux `setsockopt`]: https://man7.org/linux/man-pages/man2/setsockopt.2.html +/// [Linux `tcp`]: https://man7.org/linux/man-pages/man7/tcp.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_TCP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-tcp-socket-options +#[inline] +#[doc(alias = "TCP_NODELAY")] +pub fn set_tcp_nodelay(fd: Fd, nodelay: bool) -> io::Result<()> { + backend::net::syscalls::sockopt::set_tcp_nodelay(fd.as_fd(), nodelay) +} + +/// `getsockopt(fd, IPPROTO_TCP, TCP_NODELAY)` +/// +/// # References +/// - [POSIX `getsockopt`] +/// - [POSIX `netinet/tcp.h`] +/// - [Linux `getsockopt`] +/// - [Linux `tcp`] +/// - [Winsock2 `getsockopt`] +/// - [Winsock2 `IPPROTO_TCP` options] +/// +/// [POSIX `getsockopt`]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html +/// [POSIX `netinet/tcp.h`]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/netinet_tcp.h.html +/// [Linux `getsockopt`]: https://man7.org/linux/man-pages/man2/getsockopt.2.html +/// [Linux `tcp`]: https://man7.org/linux/man-pages/man7/tcp.7.html +/// [Winsock2 `setsockopt`]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-setsockopt +/// [Winsock2 `IPPROTO_TCP` options]: https://docs.microsoft.com/en-us/windows/win32/winsock/ipproto-tcp-socket-options +#[inline] +#[doc(alias = "TCP_NODELAY")] +pub fn get_tcp_nodelay(fd: Fd) -> io::Result { + backend::net::syscalls::sockopt::get_tcp_nodelay(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/wsa.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/wsa.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/net/wsa.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/net/wsa.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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 +/// - [Winsock2] +/// +/// [Winsock2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsastartup +pub fn wsa_startup() -> io::Result { + // 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 +/// - [Winsock2] +/// +/// [Winsock2]: 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/auxv.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/auxv.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/auxv.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/auxv.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,96 @@ +use crate::backend; +#[cfg(any( + linux_raw, + all( + libc, + 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/9699919799/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 = "_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/9699919799/functions/sysconf.html +/// [Linux]: https://man7.org/linux/man-pages/man3/sysconf.3.html +#[cfg(not(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, + all( + libc, + 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_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, + all( + libc, + 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/init.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/init.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/init.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/init.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,23 @@ +//! rustix's `init` function. +//! +//! # Safety +//! +//! On mustang, or on any non-glibc non-musl platform, 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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/param/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/param/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,31 @@ +//! 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. + +#[cfg(feature = "param")] +mod auxv; +#[cfg(target_vendor = "mustang")] +mod init; + +#[cfg(feature = "param")] +#[cfg(not(target_os = "wasi"))] +pub use auxv::clock_ticks_per_second; +#[cfg(feature = "param")] +pub use auxv::page_size; +#[cfg(feature = "param")] +#[cfg(any( + linux_raw, + all( + libc, + any( + all(target_os = "android", target_pointer_width = "64"), + target_os = "linux", + ) + ) +))] +pub use auxv::{linux_execfn, linux_hwcap}; +#[cfg(target_vendor = "mustang")] +pub use init::init; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/arg.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/arg.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/arg.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/arg.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,981 @@ +//! 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 where possible. + +use crate::ffi::{CStr, CString}; +use crate::io; +#[cfg(feature = "itoa")] +use crate::path::DecInt; +use crate::path::SMALL_PATH_BUFFER_SIZE; +use alloc::borrow::Cow; +#[cfg(feature = "itoa")] +use alloc::borrow::ToOwned; +use alloc::string::String; +use alloc::vec::Vec; +use core::mem::MaybeUninit; +use core::{ptr, slice, str}; +#[cfg(feature = "std")] +use std::ffi::{OsStr, OsString}; +#[cfg(feature = "std")] +#[cfg(target_os = "hermit")] +use std::os::hermit::ext::ffi::{OsStrExt, OsStringExt}; +#[cfg(feature = "std")] +#[cfg(unix)] +use std::os::unix::ffi::{OsStrExt, OsStringExt}; +#[cfg(feature = "std")] +#[cfg(target_os = "vxworks")] +use std::os::vxworks::ext::ffi::{OsStrExt, OsStringExt}; +#[cfg(feature = "std")] +#[cfg(target_os = "wasi")] +use std::os::wasi::ffi::{OsStrExt, OsStringExt}; +#[cfg(feature = "std")] +use std::path::{Component, Components, Iter, Path, PathBuf}; + +/// 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. +/// +/// # Example +/// +/// ```rust +/// # #[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(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>`. + fn to_string_lossy(&self) -> Cow<'_, str>; + + /// Returns a view of this string as a maybe-owned [`CStr`]. + fn as_cow_c_str(&self) -> io::Result>; + + /// Consumes `self` and returns a view of this string as a maybe-owned + /// [`CStr`]. + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b; + + /// Runs a closure with `self` passed in as a `&CStr`. + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result; +} + +impl Arg for &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> { + Ok(Cow::Owned( + CString::new(*self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +impl Arg for &String { + #[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> { + Ok(Cow::Owned( + CString::new(String::as_str(self)).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + self.as_str().into_c_str() + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +impl Arg for String { + #[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> { + Ok(Cow::Owned( + CString::new(self.as_str()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(&CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?) + } +} + +#[cfg(feature = "std")] +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> { + Ok(Cow::Owned( + CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + 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> + where + Self: 'b, + { + self.as_os_str().into_c_str() + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + Ok(Cow::Owned( + CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self.into_vec()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(&CString::new(self.into_vec()).map_err(|_cstr_err| io::Errno::INVAL)?) + } +} + +#[cfg(feature = "std")] +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> { + 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> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_os_str().as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + 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> + where + Self: 'b, + { + self.as_path().into_c_str() + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_os_str().as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + 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> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + 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) + } + + #[inline] + fn to_string_lossy(&self) -> Cow<'_, str> { + CStr::to_string_lossy(self) + } + + #[inline] + fn as_cow_c_str(&self) -> io::Result> { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(self) + } +} + +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> { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(self) + } +} + +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> { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned(self)) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(&self) + } +} + +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> { + Ok(Cow::Owned( + CString::new(self.as_ref()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + Ok(Cow::Owned( + CString::new(self.as_bytes()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_bytes(), f) + } +} + +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> { + Ok(Cow::Borrowed(self)) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(self) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(&self) + } +} + +#[cfg(feature = "std")] +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> { + 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> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_os_str().as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + 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> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self.as_path().as_os_str().as_bytes(), f) + } +} + +#[cfg(feature = "std")] +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> { + 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> + 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(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + 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) + } + + #[inline] + fn to_string_lossy(&self) -> Cow<'_, str> { + String::from_utf8_lossy(self) + } + + #[inline] + fn as_cow_c_str(&self) -> io::Result> { + Ok(Cow::Owned( + CString::new(*self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self, f) + } +} + +impl Arg for &Vec { + #[inline] + fn as_str(&self) -> io::Result<&str> { + str::from_utf8(self).map_err(|_utf8_err| io::Errno::INVAL) + } + + #[inline] + fn to_string_lossy(&self) -> Cow<'_, str> { + String::from_utf8_lossy(self) + } + + #[inline] + fn as_cow_c_str(&self) -> io::Result> { + Ok(Cow::Owned( + CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + with_c_str(self, f) + } +} + +impl Arg for Vec { + #[inline] + fn as_str(&self) -> io::Result<&str> { + str::from_utf8(self).map_err(|_utf8_err| io::Errno::INVAL) + } + + #[inline] + fn to_string_lossy(&self) -> Cow<'_, str> { + String::from_utf8_lossy(self) + } + + #[inline] + fn as_cow_c_str(&self) -> io::Result> { + Ok(Cow::Owned( + CString::new(self.as_slice()).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned( + CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?, + )) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + f(&CString::new(self).map_err(|_cstr_err| io::Errno::INVAL)?) + } +} + +#[cfg(feature = "itoa")] +impl Arg for DecInt { + #[inline] + fn as_str(&self) -> io::Result<&str> { + Ok(self.as_str()) + } + + #[inline] + fn to_string_lossy(&self) -> Cow<'_, str> { + Cow::Borrowed(self.as_str()) + } + + #[inline] + fn as_cow_c_str(&self) -> io::Result> { + Ok(Cow::Borrowed(self.as_c_str())) + } + + #[inline] + fn into_c_str<'b>(self) -> io::Result> + where + Self: 'b, + { + Ok(Cow::Owned(self.as_c_str().to_owned())) + } + + #[inline] + fn into_with_c_str(self, f: F) -> io::Result + where + Self: Sized, + F: FnOnce(&CStr) -> io::Result, + { + 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(bytes: &[u8], f: F) -> io::Result +where + F: FnOnce(&CStr) -> io::Result, +{ + // 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() as *mut u8; + + // SAFETY: bytes.len() < SMALL_PATH_BUFFER_SIZE which means we have space for + // bytes.len() + 1 u8s: + debug_assert!(bytes.len() + 1 <= SMALL_PATH_BUFFER_SIZE); + unsafe { + ptr::copy_nonoverlapping(bytes.as_ptr(), buf_ptr, bytes.len()); + buf_ptr.add(bytes.len()).write(0); + } + + // SAFETY: we just wrote the bytes above and they will remain valid for the + // duration of f b/c 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. +#[cold] +fn with_c_str_slow_path(bytes: &[u8], f: F) -> io::Result +where + F: FnOnce(&CStr) -> io::Result, +{ + f(&CString::new(bytes).map_err(|_cstr_err| io::Errno::INVAL)?) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/dec_int.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/dec_int.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/dec_int.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/dec_int.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,126 @@ +//! 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}; +use crate::ffi::CStr; +#[cfg(feature = "std")] +use core::fmt; +use core::fmt::Write; +use itoa::{Buffer, Integer}; +#[cfg(feature = "std")] +use std::ffi::OsStr; +#[cfg(feature = "std")] +#[cfg(unix)] +use std::os::unix::ffi::OsStrExt; +#[cfg(feature = "std")] +#[cfg(target_os = "wasi")] +use std::os::wasi::ffi::OsStrExt; +#[cfg(feature = "std")] +use 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/` on Linux. +/// +/// # Example +/// +/// ```rust +/// # #[cfg(feature = "path")] +/// use rustix::path::DecInt; +/// +/// # #[cfg(feature = "path")] +/// assert_eq!( +/// format!("hello {}", DecInt::new(9876).as_ref().display()), +/// "hello 9876" +/// ); +/// ``` +#[derive(Clone)] +pub struct DecInt { + // 20 `u8`s is enough to hold the decimal ASCII representation of any + // `u64`, and we add one for a NUL terminator for `as_c_str`. + buf: [u8; 20 + 1], + len: usize, +} + +impl DecInt { + /// Construct a new path component from an integer. + #[inline] + pub fn new(i: Int) -> Self { + let mut me = DecIntWriter(Self { + buf: [0; 20 + 1], + len: 0, + }); + let mut buf = Buffer::new(); + me.write_str(buf.format(i)).unwrap(); + me.0 + } + + /// Construct a new path component from a file descriptor. + #[inline] + pub fn from_fd(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.buf[..=self.len]; + 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. + #[inline] + pub fn as_bytes(&self) -> &[u8] { + &self.buf[..self.len] + } +} + +struct DecIntWriter(DecInt); + +impl core::fmt::Write for DecIntWriter { + #[inline] + fn write_str(&mut self, s: &str) -> core::fmt::Result { + match self.0.buf.get_mut(self.0.len..self.0.len + s.len()) { + Some(slice) => { + slice.copy_from_slice(s.as_bytes()); + self.0.len += s.len(); + Ok(()) + } + None => Err(core::fmt::Error), + } + } +} + +#[cfg(feature = "std")] +impl AsRef for DecInt { + #[inline] + fn as_ref(&self) -> &Path { + let as_os_str: &OsStr = OsStrExt::from_bytes(&self.buf[..self.len]); + Path::new(as_os_str) + } +} + +#[cfg(feature = "std")] +impl fmt::Debug for DecInt { + fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + self.as_str().fmt(fmt) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/path/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/path/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,11 @@ +//! Filesystem path operations. + +mod arg; +#[cfg(feature = "itoa")] +mod dec_int; + +pub use arg::Arg; +#[cfg(feature = "itoa")] +pub use dec_int::DecInt; + +pub(crate) const SMALL_PATH_BUFFER_SIZE: usize = 256; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/chdir.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/chdir.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/chdir.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/chdir.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,72 @@ +use crate::ffi::CString; +use crate::path::SMALL_PATH_BUFFER_SIZE; +use crate::{backend, io, path}; +use alloc::vec::Vec; +#[cfg(not(target_os = "fuchsia"))] +use backend::fd::AsFd; + +/// `chdir(path)`—Change the current working directory. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/chdir.html +/// [Linux]: https://man7.org/linux/man-pages/man2/chdir.2.html +#[inline] +pub fn chdir(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/9699919799/functions/fchdir.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fchdir.2.html +#[cfg(not(target_os = "fuchsia"))] +#[inline] +pub fn fchdir(fd: Fd) -> io::Result<()> { + backend::process::syscalls::fchdir(fd.as_fd()) +} + +/// `getcwd()`—Return the current working directory. +/// +/// If `reuse` is non-empty, reuse its buffer to store the result if possible. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html +/// [Linux]: https://man7.org/linux/man-pages/man3/getcwd.3.html +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn getcwd>>(reuse: B) -> io::Result { + _getcwd(reuse.into()) +} + +fn _getcwd(mut buffer: Vec) -> io::Result { + // 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 { + match backend::process::syscalls::getcwd(&mut buffer) { + Err(io::Errno::RANGE) => { + buffer.reserve(1); // use `Vec` reallocation strategy to grow capacity exponentially + buffer.resize(buffer.capacity(), 0_u8); + } + Ok(_) => { + let len = buffer.iter().position(|x| *x == b'\0').unwrap(); + buffer.resize(len, 0_u8); + return Ok(CString::new(buffer).unwrap()); + } + Err(errno) => return Err(errno), + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/exit.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/exit.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/exit.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/exit.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,34 @@ +use crate::backend; + +/// `EXIT_SUCCESS` for use with [`exit`]. +/// +/// [`exit`]: std::process::exit +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html +/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html +pub const EXIT_SUCCESS: i32 = backend::process::types::EXIT_SUCCESS; + +/// `EXIT_FAILURE` for use with [`exit`]. +/// +/// [`exit`]: std::process::exit +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html +/// [Linux]: https://man7.org/linux/man-pages/man3/exit.3.html +pub const EXIT_FAILURE: i32 = backend::process::types::EXIT_FAILURE; + +/// The exit status used by a process terminated with `SIGABRT` signal. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://tldp.org/LDP/abs/html/exitcodes.html +#[cfg(not(target_os = "wasi"))] +pub const EXIT_SIGNALED_SIGABRT: i32 = backend::process::types::EXIT_SIGNALED_SIGABRT; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/id.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/id.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/id.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/id.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,325 @@ +//! 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(any(target_os = "android", target_os = "linux"))] +use backend::process::types::RawCpuid; + +/// The raw integer value of a Unix user ID. +pub use backend::process::types::RawUid; + +/// The raw integer value of a Unix group ID. +pub use backend::process::types::RawGid; + +/// The raw integer value of a Unix process ID. +pub use backend::process::types::RawPid; + +/// The raw integer value of a Unix process ID. +pub use backend::process::types::RawNonZeroPid; + +/// `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); + +/// `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. +#[repr(transparent)] +#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)] +pub struct Pid(RawNonZeroPid); + +/// A Linux CPU ID. +#[cfg(any(target_os = "android", target_os = "linux"))] +#[repr(transparent)] +#[derive(Copy, Clone, Eq, PartialEq, Debug, Hash)] +pub struct Cpuid(RawCpuid); + +impl Uid { + /// A `Uid` corresponding to the root user (uid 0). + pub const ROOT: Self = Self(0); + + /// Converts a `RawUid` into a `Uid`. + /// + /// # Safety + /// + /// `raw` must be the value of a valid Unix user ID. + #[inline] + pub const unsafe fn from_raw(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 0). + #[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`. + /// + /// # Safety + /// + /// `raw` must be the value of a valid Unix group ID. + #[inline] + pub const unsafe fn from_raw(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 0). + #[inline] + pub const fn is_root(self) -> bool { + self.0 == Self::ROOT.0 + } +} + +impl Pid { + /// A `Pid` corresponding to the init process (pid 1). + pub const INIT: Self = Self( + // Safety: The init process' pid is always valid. + unsafe { RawNonZeroPid::new_unchecked(1) }, + ); + + /// Converts a `RawPid` into a `Pid`. + /// + /// # Safety + /// + /// `raw` must be the value of a valid Unix process ID, or zero. + #[inline] + pub const unsafe fn from_raw(raw: RawPid) -> Option { + match RawNonZeroPid::new(raw) { + Some(pid) => Some(Self(pid)), + None => None, + } + } + + /// Converts a known non-zero `RawPid` into a `Pid`. + /// + /// # Safety + /// + /// `raw` must be the value of a valid Unix process ID. It must not be + /// zero. + #[inline] + pub const unsafe fn from_raw_nonzero(raw: RawNonZeroPid) -> Self { + Self(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(); + debug_assert_ne!(id, 0); + + // Safety: We know the returned ID is valid because it came directly + // from an OS API. + unsafe { Self::from_raw_nonzero(RawNonZeroPid::new_unchecked(id as _)) } + } + + /// Converts a `Pid` into a `RawNonZeroPid`. + #[inline] + pub const fn as_raw_nonzero(self) -> RawNonZeroPid { + self.0 + } + + /// Converts an `Option` into a `RawPid`. + #[inline] + pub fn as_raw(pid: Option) -> RawPid { + pid.map_or(0, |pid| pid.0.get()) + } + + /// Test whether this pid represents the init process (pid 0). + #[inline] + pub const fn is_init(self) -> bool { + self.0.get() == Self::INIT.0.get() + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +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 + } +} + +/// `getuid()`—Returns the process' real user ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getuid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getuid.2.html +#[inline] +#[must_use] +pub fn getuid() -> Uid { + backend::process::syscalls::getuid() +} + +/// `geteuid()`—Returns the process' effective user ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/geteuid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/geteuid.2.html +#[inline] +#[must_use] +pub fn geteuid() -> Uid { + backend::process::syscalls::geteuid() +} + +/// `getgid()`—Returns the process' real group ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getgid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getgid.2.html +#[inline] +#[must_use] +pub fn getgid() -> Gid { + backend::process::syscalls::getgid() +} + +/// `getegid()`—Returns the process' effective group ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getegid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getegid.2.html +#[inline] +#[must_use] +pub fn getegid() -> Gid { + backend::process::syscalls::getegid() +} + +/// `getpid()`—Returns the process' ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getpid.2.html +#[inline] +#[must_use] +pub fn getpid() -> Pid { + backend::process::syscalls::getpid() +} + +/// `getppid()`—Returns the parent process' ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getppid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getppid.2.html +#[inline] +#[must_use] +pub fn getppid() -> Option { + backend::process::syscalls::getppid() +} + +/// `getpgid(pid)`—Returns the process group ID of the given process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpgid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getpgid.2.html +#[inline] +pub fn getpgid(pid: Option) -> io::Result { + backend::process::syscalls::getpgid(pid) +} + +/// `getpgrp()`—Returns the process' group ID. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpgrp.html +/// [Linux]: https://man7.org/linux/man-pages/man2/getpgrp.2.html +#[inline] +#[must_use] +pub fn getpgrp() -> Pid { + backend::process::syscalls::getpgrp() +} + +/// `setsid()`—Create a new session. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/setsid.html +/// [Linux]: https://man7.org/linux/man-pages/man2/setsid.2.html +#[inline] +pub fn setsid() -> io::Result { + backend::process::syscalls::setsid() +} + +// translate_fchown_args returns the raw value of the IDs. In case of `None` +// it returns `u32::MAX` 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, group: Option) -> (u32, u32) { + let ow = match owner { + Some(o) => o.as_raw(), + None => u32::MAX, + }; + + let gr = match group { + Some(g) => g.as_raw(), + None => u32::MAX, + }; + + (ow, gr) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/kill.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/kill.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/kill.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/kill.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,51 @@ +use crate::process::Pid; +use crate::{backend, io}; + +pub use backend::process::types::Signal; + +/// `kill(pid, sig)`—Sends a signal to a process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 1, this sends a signal to all processes the current process +/// has permission to send signals to, except process `1`, possibly other +/// system-specific processes, and on some systems, the current process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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/9699919799/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) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/membarrier.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/membarrier.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/membarrier.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/membarrier.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,93 @@ +//! The Linux `membarrier` syscall. +//! +//! # Safety +//! +//! This file defines an enum and a bitflags type that represent the same +//! set of values and are kept in sync. +#![allow(unsafe_code)] + +use crate::process::Cpuid; +use crate::{backend, io}; + +pub use backend::process::types::MembarrierCommand; + +#[cfg(any(target_os = "android", target_os = "linux"))] +bitflags::bitflags! { + /// A result from [`membarrier_query`]. + /// + /// These flags correspond to values of [`MembarrierCommand`] which are + /// supported in the OS. + pub struct MembarrierQuery: u32 { + /// `MEMBARRIER_CMD_GLOBAL` + #[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 _; + } +} + +#[cfg(any(target_os = "android", target_os = "linux"))] +impl MembarrierQuery { + /// Test whether this query result contains the given command. + #[inline] + pub fn contains_command(self, cmd: MembarrierCommand) -> bool { + // Safety: `MembarrierCommand` is an enum that only contains values + // also valid in `MembarrierQuery`. + self.contains(unsafe { Self::from_bits_unchecked(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::process::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::process::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::process::syscalls::membarrier_cpu(cmd, cpu) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,85 @@ +//! Process-associated operations. + +#[cfg(not(target_os = "wasi"))] +mod chdir; +mod exit; +#[cfg(not(target_os = "wasi"))] // WASI doesn't have get[gpu]id. +mod id; +#[cfg(not(target_os = "wasi"))] +mod kill; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod membarrier; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod prctl; +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] // WASI doesn't have [gs]etpriority. +mod priority; +#[cfg(target_os = "freebsd")] +mod procctl; +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +mod rlimit; +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +mod sched; +mod sched_yield; +#[cfg(not(target_os = "wasi"))] // WASI doesn't have uname. +mod uname; +#[cfg(not(target_os = "wasi"))] +mod wait; + +#[cfg(not(target_os = "wasi"))] +pub use chdir::chdir; +#[cfg(not(any(target_os = "wasi", target_os = "fuchsia")))] +pub use chdir::fchdir; +#[cfg(not(target_os = "wasi"))] +pub use chdir::getcwd; +#[cfg(not(target_os = "wasi"))] +pub use exit::EXIT_SIGNALED_SIGABRT; +pub use exit::{EXIT_FAILURE, EXIT_SUCCESS}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use id::Cpuid; +#[cfg(not(target_os = "wasi"))] +pub use id::{ + getegid, geteuid, getgid, getpgid, getpgrp, getpid, getppid, getuid, setsid, Gid, Pid, RawGid, + RawNonZeroPid, RawPid, RawUid, Uid, +}; +#[cfg(not(target_os = "wasi"))] +pub use kill::{kill_current_process_group, kill_process, kill_process_group, Signal}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use membarrier::{ + membarrier, membarrier_cpu, membarrier_query, MembarrierCommand, MembarrierQuery, +}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use prctl::*; +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +pub use priority::nice; +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +pub use priority::{ + getpriority_pgrp, getpriority_process, getpriority_user, setpriority_pgrp, setpriority_process, + setpriority_user, +}; +#[cfg(target_os = "freebsd")] +pub use procctl::*; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use rlimit::prlimit; +#[cfg(not(any(target_os = "fuchsia", target_os = "redox", target_os = "wasi")))] +pub use rlimit::{getrlimit, setrlimit, Resource, Rlimit}; +#[cfg(any( + target_os = "android", + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "linux", +))] +pub use sched::{sched_getaffinity, sched_setaffinity, CpuSet}; +pub use sched_yield::sched_yield; +#[cfg(not(target_os = "wasi"))] +pub use uname::{uname, Uname}; +#[cfg(not(target_os = "wasi"))] +pub use wait::{wait, waitpid, WaitOptions, WaitStatus}; + +#[cfg(not(target_os = "wasi"))] +#[cfg(feature = "fs")] +pub(crate) use id::translate_fchown_args; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/prctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/prctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/prctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/prctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,1120 @@ +//! 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::convert::{TryFrom, TryInto}; +use core::mem::MaybeUninit; +use core::ptr::NonNull; +use core::{mem, ptr}; + +use bitflags::bitflags; + +use crate::backend::c::{c_int, c_uint, c_void}; +use crate::backend::process::syscalls; +use crate::backend::process::types::Signal; +use crate::fd::{AsRawFd, BorrowedFd}; +use crate::ffi::CStr; +use crate::io; +use crate::process::{Pid, RawPid}; + +// +// Helper functions. +// + +#[inline] +pub(crate) unsafe fn prctl_1arg(option: c_int) -> io::Result { + const NULL: *mut c_void = ptr::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 { + const NULL: *mut c_void = ptr::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 { + syscalls::prctl(option, arg2, arg3, ptr::null_mut(), ptr::null_mut()) +} + +#[inline] +pub(crate) unsafe fn prctl_get_at_arg2_optional

(option: i32) -> io::Result

{ + let mut value: MaybeUninit

= MaybeUninit::uninit(); + prctl_2args(option, value.as_mut_ptr().cast())?; + Ok(value.assume_init()) +} + +#[inline] +pub(crate) unsafe fn prctl_get_at_arg2(option: i32) -> io::Result +where + P: Default, + T: TryFrom, +{ + let mut value: P = Default::default(); + prctl_2args(option, ((&mut value) as *mut P).cast())?; + TryFrom::try_from(value) +} + +// +// 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://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2 +#[inline] +pub fn parent_process_death_signal() -> io::Result> { + unsafe { prctl_get_at_arg2_optional::(PR_GET_PDEATHSIG) }.map(Signal::from_raw) +} + +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://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2 +#[inline] +pub fn set_parent_process_death_signal(signal: Option) -> io::Result<()> { + let signal = signal.map_or(0_usize, |signal| signal 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_*`. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(i32)] +pub enum DumpableBehavior { + /// Not dumpable. + NotDumpable = SUID_DUMP_DISABLE, + /// Dumpable. + Dumpable = SUID_DUMP_USER, + /// Dumpable but only readable by root. + DumpableReadableOnlyByRoot = SUID_DUMP_ROOT, +} + +impl TryFrom for DumpableBehavior { + type Error = io::Errno; + + fn try_from(value: i32) -> Result { + 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's `dumpable` attribute. +/// +/// # References +/// - [`prctl(PR_GET_DUMPABLE,...)`] +/// +/// [`prctl(PR_GET_DUMPABLE,...)`]: https://man7.org/linux/man-pages/man2/prctl.2.html +#[inline] +pub fn dumpable_behavior() -> io::Result { + 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, which 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] +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_*`. + pub struct UnalignedAccessControl: u32 { + /// Silently fix up unaligned user accesses. + const NO_PRINT = 1; + /// Generate `SIGBUS` on unaligned user access. + const SIGBUS = 2; + } +} + +/// 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] +pub fn unaligned_access_control() -> io::Result { + let r = unsafe { prctl_get_at_arg2_optional::(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] +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_*`. + pub struct FloatingPointEmulationControl: u32 { + /// Silently emulate floating point operations accesses. + const NO_PRINT = 1; + /// Don't emulate floating point operations, send `SIGFPE` instead. + 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] +pub fn floating_point_emulation_control() -> io::Result { + let r = unsafe { prctl_get_at_arg2_optional::(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] +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. + 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] +pub fn floating_point_exception_mode() -> io::Result> { + unsafe { prctl_get_at_arg2_optional::(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] +pub fn set_floating_point_exception_mode( + config: Option, +) -> 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_*`. +#[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 for TimingMethod { + type Error = io::Errno; + + fn try_from(value: i32) -> Result { + 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] +pub fn timing_method() -> io::Result { + 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] +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_*`. +#[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 for EndianMode { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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] +pub fn endian_mode() -> io::Result { + unsafe { prctl_get_at_arg2::(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] +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_*`. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u32)] +pub enum TimeStampCounterReadability { + /// Allow the use of the timestamp counter. + Readable = PR_TSC_ENABLE, + /// Throw a `SIGSEGV` instead of reading the TSC. + RaiseSIGSEGV = PR_TSC_SIGSEGV, +} + +impl TryFrom for TimeStampCounterReadability { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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] +pub fn time_stamp_counter_readability() -> io::Result { + unsafe { prctl_get_at_arg2::(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] +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] +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_*`. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u32)] +pub enum MachineCheckMemoryCorruptionKillPolicy { + /// Late kill policy. + Late = PR_MCE_KILL_LATE, + /// Early kill policy. + Early = PR_MCE_KILL_EARLY, + /// System-wide default policy. + Default = PR_MCE_KILL_DEFAULT, +} + +impl TryFrom for MachineCheckMemoryCorruptionKillPolicy { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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] +pub fn machine_check_memory_corruption_kill_policy( +) -> io::Result { + 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] +pub fn set_machine_check_memory_corruption_kill_policy( + policy: Option, +) -> 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, ptr::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_*`. +#[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] +pub unsafe fn set_virtual_memory_map_address( + option: VirtualMemoryMapAddress, + address: Option>, +) -> io::Result<()> { + let address = address.map_or_else(ptr::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] +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] +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 _, + ptr::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] +pub fn virtual_memory_map_config_struct_size() -> io::Result { + let mut value: c_uint = 0; + let value_ptr = (&mut value) as *mut c_uint; + 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: u32, +} + +/// 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] +pub unsafe fn configure_virtual_memory_map(config: &PrctlMmMap) -> io::Result<()> { + syscalls::prctl( + PR_SET_MM, + PR_SET_MM_MAP as *mut _, + config as *const PrctlMmMap as *mut _, + mem::size_of::() as *mut _, + ptr::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] +pub fn set_ptracer(tracer: PTracer) -> io::Result<()> { + let pid = match tracer { + PTracer::None => ptr::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] +pub fn child_subreaper() -> io::Result> { + unsafe { + let r = prctl_get_at_arg2_optional::(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] +pub fn set_child_subreaper(pid: Option) -> 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_*`. +#[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 for FloatingPointMode { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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] +pub fn floating_point_mode() -> io::Result { + 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] +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_*`. +#[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 for SpeculationFeature { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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_*`. + 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. + pub struct SpeculationFeatureState: u32 { + /// Mitigation can be controlled per thread by `PR_SET_SPECULATION_CTRL`. + 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/v5.18/userspace-api/spec_ctrl.html +#[inline] +pub fn speculative_feature_state( + feature: SpeculationFeature, +) -> io::Result> { + 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/v5.18/userspace-api/spec_ctrl.html +#[inline] +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] +pub fn is_io_flusher() -> io::Result { + 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] +pub fn configure_io_flusher_behavior(enable: bool) -> io::Result<()> { + unsafe { prctl_2args(PR_SET_IO_FLUSHER, enable as usize as *mut _) }.map(|_r| ()) +} + +// +// PR_PAC_GET_ENABLED_KEYS/PR_PAC_SET_ENABLED_KEYS +// + +const PR_PAC_GET_ENABLED_KEYS: c_int = 61; + +bitflags! { + /// `PR_PAC_AP*`. + pub struct PointerAuthenticationKeys: u32 { + /// Instruction authentication key `A`. + const INSTRUCTION_AUTHENTICATION_KEY_A = 1_u32 << 0; + /// Instruction authentication key `B`. + const INSTRUCTION_AUTHENTICATION_KEY_B = 1_u32 << 1; + /// Data authentication key `A`. + const DATA_AUTHENTICATION_KEY_A = 1_u32 << 2; + /// Data authentication key `B`. + const DATA_AUTHENTICATION_KEY_B = 1_u32 << 3; + /// Generic authentication `A` key. + const GENERIC_AUTHENTICATION_KEY_A = 1_u32 << 4; + } +} + +/// Get enabled pointer authentication keys. +/// +/// # References +/// - [`prctl(PR_PAC_GET_ENABLED_KEYS,...)`] +/// +/// [`prctl(PR_PAC_GET_ENABLED_KEYS,...)`]: https://www.kernel.org/doc/html/v5.18/arm64/pointer-authentication.html +#[inline] +pub fn enabled_pointer_authentication_keys() -> io::Result { + 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/v5.18/arm64/pointer-authentication.html +#[inline] +pub unsafe fn configure_pointer_authentication_keys( + config: impl Iterator, +) -> 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] +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(ptr::null, CStr::as_ptr) as *mut _, + ) + .map(|_r| ()) + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/priority.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/priority.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/priority.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/priority.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,131 @@ +use crate::process::{Pid, Uid}; +use crate::{backend, io}; + +/// `nice()`—Adjust the scheduling priority of the current process. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/nice.html +/// [Linux]: https://man7.org/linux/man-pages/man2/nice.2.html +#[inline] +pub fn nice(inc: i32) -> io::Result { + 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/9699919799/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(target_os = "redox"))] +#[inline] +#[doc(alias = "getpriority")] +pub fn getpriority_user(uid: Uid) -> io::Result { + 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/9699919799/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(target_os = "redox"))] +#[inline] +#[doc(alias = "getpriority")] +pub fn getpriority_pgrp(pgid: Option) -> io::Result { + 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/9699919799/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(target_os = "redox"))] +#[inline] +#[doc(alias = "getpriority")] +pub fn getpriority_process(pid: Option) -> io::Result { + 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/9699919799/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(target_os = "redox"))] +#[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/9699919799/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(target_os = "redox"))] +#[inline] +#[doc(alias = "setpriority")] +pub fn setpriority_pgrp(pgid: Option, 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/9699919799/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(target_os = "redox"))] +#[inline] +#[doc(alias = "setpriority")] +pub fn setpriority_process(pid: Option, priority: i32) -> io::Result<()> { + backend::process::syscalls::setpriority_process(pid, priority) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/procctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/procctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/procctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/procctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,180 @@ +//! 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)] + +use core::mem::MaybeUninit; + +use crate::backend::c::{c_int, c_uint, c_void}; +use crate::backend::process::syscalls; +use crate::backend::process::types::{RawId, Signal}; +use crate::io; +use crate::process::{Pid, RawPid}; + +// +// 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

( + option: c_int, + process: ProcSelector, + data: &P, +) -> io::Result<()> { + procctl(option, process, (data as *const P as *mut P).cast()) +} + +#[inline] +pub(crate) unsafe fn procctl_get_optional

( + option: c_int, + process: ProcSelector, +) -> io::Result

{ + let mut value: MaybeUninit

= 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://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2 +#[inline] +pub fn parent_process_death_signal() -> io::Result> { + unsafe { procctl_get_optional::(PROC_PDEATHSIG_STATUS, None) }.map(Signal::from_raw) +} + +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://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2 +#[inline] +pub fn set_parent_process_death_signal(signal: Option) -> io::Result<()> { + let signal = signal.map_or(0, |signal| signal as c_int); + unsafe { procctl_set::(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 +/// - [`procctl(PROC_TRACE_CTL,...)`] +/// +/// [`procctl(PROC_TRACE_CTL,...)`]: https://www.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 +/// - [`procctl(PROC_TRACE_STATUS,...)`] +/// +/// [`procctl(PROC_TRACE_STATUS,...)`]: https://www.freebsd.org/cgi/man.cgi?query=procctl&sektion=2 +#[inline] +pub fn trace_status(process: ProcSelector) -> io::Result { + let val = unsafe { procctl_get_optional::(PROC_TRACE_STATUS, process) }?; + match val { + -1 => Ok(TracingStatus::NotTraceble), + 0 => Ok(TracingStatus::Tracable), + pid => { + let pid = unsafe { Pid::from_raw(pid as RawPid) }.ok_or(io::Errno::RANGE)?; + Ok(TracingStatus::BeingTraced(pid)) + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/rlimit.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/rlimit.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/rlimit.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/rlimit.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,53 @@ +#[cfg(any(target_os = "android", target_os = "linux"))] +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, PartialEq, Eq)] +pub struct Rlimit { + /// Current effective, "soft", limit. + pub current: Option, + /// Maximum, "hard", value that `current` may be dynamically increased to. + pub maximum: Option, +} + +/// `getrlimit(resource)`—Get a process resource limit value. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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/9699919799/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(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn prlimit(pid: Option, resource: Resource, new: Rlimit) -> io::Result { + backend::process::syscalls::prlimit(pid, resource, new) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,110 @@ +use crate::process::Pid; +use crate::{backend, io}; + +/// `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::process::sched_setaffinity +/// [`sched_getaffinity`]: crate::process::sched_getaffinity +#[repr(C)] +#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +pub struct CpuSet { + cpu_set: backend::process::types::RawCpuSet, +} + +impl CpuSet { + /// The maximum number of CPU in `CpuSet`. + pub const MAX_CPU: usize = backend::process::types::CPU_SETSIZE; + + /// Create a new and empty `CpuSet`. + #[inline] + pub fn new() -> Self { + Self { + cpu_set: backend::process::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::process::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::process::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::process::cpu_set::CPU_CLR(field, &mut self.cpu_set) + } + + /// Count the number of CPUs set in the `CpuSet`. + #[cfg(any(target_os = "android", target_os = "linux"))] + #[inline] + pub fn count(&self) -> u32 { + backend::process::cpu_set::CPU_COUNT(&self.cpu_set) + } + + /// Zeroes the `CpuSet`. + #[inline] + pub fn clear(&mut self) { + backend::process::cpu_set::CPU_ZERO(&mut self.cpu_set) + } +} + +impl Default for CpuSet { + #[inline] + fn default() -> Self { + Self::new() + } +} + +/// `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, cpuset: &CpuSet) -> io::Result<()> { + backend::process::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) -> io::Result { + let mut cpuset = CpuSet::new(); + backend::process::syscalls::sched_getaffinity(pid, &mut cpuset.cpu_set).and(Ok(cpuset)) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched_yield.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched_yield.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched_yield.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/sched_yield.rs 2023-02-17 23:07:30.000000000 +0000 @@ -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/9699919799/functions/sched_yield.html +/// [Linux]: https://man7.org/linux/man-pages/man2/sched_yield.2.html +#[inline] +pub fn sched_yield() { + backend::process::syscalls::sched_yield() +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/uname.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/uname.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/uname.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/uname.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,101 @@ +//! Uname support. +//! +//! # Safety +//! +//! This function converts from `struct utsname` fields provided from the +//! kernel into `&str` references, which assumes that they're NUL-terminated. +#![allow(unsafe_code)] + +use crate::backend; +use crate::ffi::CStr; +use core::fmt; + +/// `uname()`—Returns high-level information about the runtime OS and +/// hardware. +#[inline] +pub fn uname() -> Uname { + Uname(backend::process::syscalls::uname()) +} + +/// `struct utsname`—Return type for [`uname`]. +#[doc(alias = "utsname")] +pub struct Uname(backend::process::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. + #[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(any(target_os = "android", target_os = "linux"))] + #[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, fmt: &mut fmt::Formatter<'_>) -> fmt::Result { + #[cfg(not(any(target_os = "android", target_os = "linux")))] + { + write!( + fmt, + "{} {} {} {} {}", + self.sysname().to_string_lossy(), + self.nodename().to_string_lossy(), + self.release().to_string_lossy(), + self.version().to_string_lossy(), + self.machine().to_string_lossy(), + ) + } + #[cfg(any(target_os = "android", target_os = "linux"))] + { + write!( + fmt, + "{} {} {} {} {} {}", + self.sysname().to_string_lossy(), + self.nodename().to_string_lossy(), + self.release().to_string_lossy(), + self.version().to_string_lossy(), + self.machine().to_string_lossy(), + self.domainname().to_string_lossy(), + ) + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/wait.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/wait.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/process/wait.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/process/wait.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,129 @@ +use crate::process::Pid; +use crate::{backend, io}; +use bitflags::bitflags; + +bitflags! { + /// Options for modifying the behavior of wait/waitpid + pub struct WaitOptions: u32 { + /// Return immediately if no child has exited. + const NOHANG = backend::process::wait::WNOHANG as _; + /// Return if a child has stopped (but not traced via `ptrace(2)`) + const UNTRACED = backend::process::wait::WUNTRACED as _; + /// Return if a stopped child has been resumed by delivery of `SIGCONT` + const CONTINUED = backend::process::wait::WCONTINUED as _; + } +} + +/// the status of the child processes the caller waited on +#[derive(Debug, Clone, Copy)] +pub struct WaitStatus(u32); + +impl WaitStatus { + /// create a `WaitStatus` out of an integer. + #[inline] + pub(crate) fn new(status: u32) -> Self { + Self(status) + } + + /// Converts a `WaitStatus` into its raw representation as an integer. + #[inline] + pub const fn as_raw(self) -> u32 { + self.0 + } + + /// Returns whether the process is currently stopped. + #[inline] + pub fn stopped(self) -> bool { + backend::process::wait::WIFSTOPPED(self.0 as _) + } + + /// Returns whether the process has continued from a job control stop. + #[inline] + pub fn continued(self) -> bool { + backend::process::wait::WIFCONTINUED(self.0 as _) + } + + /// Returns the number of the signal that stopped the process, + /// if the process was stopped by a signal. + #[inline] + pub fn stopping_signal(self) -> Option { + if self.stopped() { + Some(backend::process::wait::WSTOPSIG(self.0 as _) as _) + } else { + None + } + } + + /// Returns the exit status number returned by the process, + /// if it exited normally. + #[inline] + pub fn exit_status(self) -> Option { + if backend::process::wait::WIFEXITED(self.0 as _) { + Some(backend::process::wait::WEXITSTATUS(self.0 as _) as _) + } else { + None + } + } + + /// Returns the number of the signal that terminated the process, + /// if the process was terminated by a signal. + #[inline] + pub fn terminating_signal(self) -> Option { + if backend::process::wait::WIFSIGNALED(self.0 as _) { + Some(backend::process::wait::WTERMSIG(self.0 as _) as _) + } else { + None + } + } +} + +/// `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. +/// +/// If the pid is equal to `RawPid::MAX`, the call will wait for any child +/// process. +/// +/// Otherwise if the `wrapping_neg` of pid is less than pid, the call will wait +/// for any child process with a group ID equal to the `wrapping_neg` of `pid`. +/// +/// 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`. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/wait.html +/// [Linux]: https://man7.org/linux/man-pages/man2/waitpid.2.html +#[cfg(not(target_os = "wasi"))] +#[inline] +pub fn waitpid(pid: Option, waitopts: WaitOptions) -> io::Result> { + Ok(backend::process::syscalls::waitpid(pid, waitopts)?.map(|(_, status)| status)) +} + +/// `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/9699919799/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> { + backend::process::syscalls::wait(waitopts) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/rand/getrandom.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/rand/getrandom.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/rand/getrandom.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/rand/getrandom.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,21 @@ +use crate::{backend, io}; + +/// `GRND_*` +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. +/// +/// [`getrandom`]: https://crates.io/crates/getrandom +/// [`rand`]: https://crates.io/crates/rand +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/getrandom.2.html +#[inline] +pub fn getrandom(buf: &mut [u8], flags: GetRandomFlags) -> io::Result { + backend::rand::syscalls::getrandom(buf, flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/rand/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/rand/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/rand/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/rand/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,7 @@ +//! Random-related operations. + +#[cfg(any(linux_raw, all(libc, target_os = "linux")))] +mod getrandom; + +#[cfg(any(linux_raw, all(libc, target_os = "linux")))] +pub use getrandom::{getrandom, GetRandomFlags}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/runtime.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/runtime.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/runtime.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/runtime.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,269 @@ +//! Low-level implementation details for libc-like runtime libraries such as +//! [origin]. +//! +//! 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. +//! +//! The API for these functions is not stable, and this module is +//! `doc(hidden)`. +//! +//! [origin]: https://github.com/sunfishcode/mustang/tree/main/origin +//! +//! # 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::backend; +#[cfg(linux_raw)] +use crate::ffi::CStr; +#[cfg(linux_raw)] +#[cfg(feature = "fs")] +use crate::fs::AtFlags; +#[cfg(linux_raw)] +use crate::io; +#[cfg(linux_raw)] +use crate::process::Pid; +#[cfg(linux_raw)] +#[cfg(feature = "fs")] +use backend::fd::AsFd; +#[cfg(linux_raw)] +use core::ffi::c_void; + +#[cfg(linux_raw)] +#[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(linux_raw)] +#[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) +} + +#[cfg(linux_raw)] +#[cfg(target_arch = "x86_64")] +#[inline] +pub unsafe fn set_fs(data: *mut c_void) { + backend::runtime::syscalls::tls::set_fs(data) +} + +#[cfg(linux_raw)] +#[inline] +pub unsafe fn set_tid_address(data: *mut c_void) -> Pid { + backend::runtime::syscalls::tls::set_tid_address(data) +} + +/// `prctl(PR_SET_NAME, name)` +/// +/// # References +/// - [Linux]: https://man7.org/linux/man-pages/man2/prctl.2.html +/// +/// # Safety +/// +/// This is a very low-level feature for implementing threading libraries. +/// See the references links above. +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/prctl.2.html +#[cfg(linux_raw)] +#[inline] +pub unsafe fn set_thread_name(name: &CStr) -> io::Result<()> { + backend::runtime::syscalls::tls::set_thread_name(name) +} + +#[cfg(linux_raw)] +#[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. +#[cfg(linux_raw)] +#[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 all 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/9699919799/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")] +#[doc(alias = "_Exit")] +#[inline] +pub fn exit_group(status: i32) -> ! { + backend::process::syscalls::exit_group(status) +} + +/// Return fields from the main executable segment headers ("phdrs") relevant +/// to initializing TLS provided to the program at startup. +#[cfg(linux_raw)] +#[inline] +pub fn startup_tls_info() -> StartupTlsInfo { + backend::runtime::tls::startup_tls_info() +} + +/// `(getauxval(AT_PHDR), getauxval(AT_PHNUM))`—Returns the address and +/// number of ELF segment headers for the main executable. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man3/getauxval.3.html +#[cfg(linux_raw)] +#[cfg(any(target_os = "android", target_os = "linux"))] +#[inline] +pub fn exe_phdrs() -> (*const c_void, usize) { + backend::param::auxv::exe_phdrs() +} + +#[cfg(linux_raw)] +pub use backend::runtime::tls::StartupTlsInfo; + +/// `fork()`—Creates a new process by duplicating the calling process. +/// +/// On success, the pid of the child process is returned in the parent, and +/// `None` 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. +/// +/// # 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. +/// +/// # 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/9699919799/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/9699919799/functions/fork.html +/// [Linux]: https://man7.org/linux/man-pages/man2/fork.2.html +/// [async-signal-safe]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04_03 +#[cfg(linux_raw)] +pub unsafe fn fork() -> io::Result> { + backend::runtime::syscalls::fork() +} + +/// `execveat(dirfd, path.as_c_str(), argv, envp, flags)`—Execute a new +/// command using the current process. +/// +/// # 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 +#[cfg(linux_raw)] +#[inline] +#[cfg(feature = "fs")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "fs")))] +pub unsafe fn execveat( + 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. +/// +/// # 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 +#[cfg(linux_raw)] +#[inline] +pub unsafe fn execve(path: &CStr, argv: *const *const u8, envp: *const *const u8) -> io::Errno { + backend::runtime::syscalls::execve(path, argv, envp) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/cf.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/cf.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/cf.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/cf.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,40 @@ +use crate::termios::{Speed, Termios}; +use crate::{backend, io}; + +/// `cfgetospeed(termios)` +#[inline] +#[must_use] +pub fn cfgetospeed(termios: &Termios) -> Speed { + backend::termios::syscalls::cfgetospeed(termios) +} + +/// `cfgetispeed(termios)` +#[inline] +#[must_use] +pub fn cfgetispeed(termios: &Termios) -> Speed { + backend::termios::syscalls::cfgetispeed(termios) +} + +/// `cfmakeraw(termios)` +#[inline] +pub fn cfmakeraw(termios: &mut Termios) { + backend::termios::syscalls::cfmakeraw(termios) +} + +/// `cfsetospeed(termios, speed)` +#[inline] +pub fn cfsetospeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + backend::termios::syscalls::cfsetospeed(termios, speed) +} + +/// `cfsetispeed(termios, speed)` +#[inline] +pub fn cfsetispeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + backend::termios::syscalls::cfsetispeed(termios, speed) +} + +/// `cfsetspeed(termios, speed)` +#[inline] +pub fn cfsetspeed(termios: &mut Termios, speed: Speed) -> io::Result<()> { + backend::termios::syscalls::cfsetspeed(termios, speed) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/constants.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/constants.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/constants.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/constants.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,852 @@ +use crate::backend; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B1000000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B1152000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B1500000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B2000000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B2500000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B3000000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B3500000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B4000000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" +)))] +pub use backend::termios::types::B460800; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B500000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::B576000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" +)))] +pub use backend::termios::types::B921600; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::BRKINT; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::BS0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::BS1; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::BSDLY; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", +)))] +pub use backend::termios::types::CBAUD; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CBAUDEX; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", +)))] +pub use backend::termios::types::CIBAUD; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CLOCAL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CMSPAR; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CR0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CR1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CR2; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CR3; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::CRDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CREAD; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::CRTSCTS; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CS5; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CS6; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CS7; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CS8; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CSIZE; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::CSTOPB; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ECHO; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::ECHOCTL; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ECHOE; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ECHOK; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::ECHOKE; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ECHONL; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::ECHOPRT; +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::EXTA; +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::EXTB; +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox" +)))] +pub use backend::termios::types::EXTPROC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::FF0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::FF1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::FFDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::FLUSHO; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::HUPCL; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ICRNL; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IEXTEN; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IGNBRK; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IGNCR; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IGNPAR; +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox" +)))] +pub use backend::termios::types::IMAXBEL; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::INLCR; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::INPCK; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ISIG; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ISTRIP; +#[cfg(any( + linux_raw, + all( + libc, + any(target_os = "haiku", target_os = "illumos", target_os = "solaris"), + ) +))] +pub use backend::termios::types::IUCLC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::IUTF8; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::IXANY; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IXOFF; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::IXON; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::NL0; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::NL1; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::NLDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::NOFLSH; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::OCRNL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +)))] +pub use backend::termios::types::OFDEL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", +)))] +pub use backend::termios::types::OFILL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "redox", +)))] +pub use backend::termios::types::OLCUC; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ONLCR; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ONLRET; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::ONOCR; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::OPOST; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::PARENB; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::PARMRK; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::PARODD; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "redox")))] +pub use backend::termios::types::PENDIN; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::TAB0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::TAB1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::TAB2; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::TAB3; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::TABDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos")))] +pub use backend::termios::types::TOSTOP; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", +)))] +pub use backend::termios::types::VSWTC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::VT0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::VT1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::VTDLY; +#[cfg(any(linux_raw, all(libc, any(target_arch = "s390x", target_os = "haiku"))))] +pub use backend::termios::types::XCASE; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", +)))] +pub use backend::termios::types::XTABS; +pub use backend::termios::types::{ + B0, B110, B115200, B1200, B134, B150, B1800, B19200, B200, B230400, B2400, B300, B38400, B4800, + B50, B57600, B600, B75, B9600, ICANON, VEOF, VEOL, VEOL2, VERASE, VINTR, VKILL, VMIN, VQUIT, + VSTART, VSTOP, VSUSP, VTIME, +}; +#[cfg(not(target_os = "haiku"))] +pub use backend::termios::types::{VDISCARD, VLNEXT, VREPRINT, VWERASE}; + +/// Translate from a `Speed` code to a speed value `u32`. +/// +/// ```rust +/// let speed = rustix::termios::speed_value(rustix::termios::B57600); +/// assert_eq!(speed, Some(57600)); +/// ``` +pub fn speed_value(speed: backend::termios::types::Speed) -> Option { + match speed { + backend::termios::types::B0 => Some(0), + backend::termios::types::B50 => Some(50), + backend::termios::types::B75 => Some(75), + backend::termios::types::B110 => Some(110), + backend::termios::types::B134 => Some(134), + backend::termios::types::B150 => Some(150), + backend::termios::types::B200 => Some(200), + backend::termios::types::B300 => Some(300), + backend::termios::types::B600 => Some(600), + backend::termios::types::B1200 => Some(1200), + backend::termios::types::B1800 => Some(1800), + backend::termios::types::B2400 => Some(2400), + backend::termios::types::B4800 => Some(4800), + backend::termios::types::B9600 => Some(9600), + backend::termios::types::B19200 => Some(19200), + backend::termios::types::B38400 => Some(38400), + backend::termios::types::B57600 => Some(57600), + backend::termios::types::B115200 => Some(115_200), + backend::termios::types::B230400 => Some(230_400), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" + )))] + backend::termios::types::B460800 => Some(460_800), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B500000 => Some(500_000), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B576000 => Some(576_000), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd" + )))] + backend::termios::types::B921600 => Some(921_600), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B1000000 => Some(1_000_000), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B1152000 => Some(1_152_000), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B1500000 => Some(1_500_000), + #[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B2000000 => Some(2_000_000), + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B2500000 => Some(2_500_000), + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B3000000 => Some(3_000_000), + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B3500000 => Some(3_500_000), + #[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + )))] + backend::termios::types::B4000000 => Some(4_000_000), + _ => None, + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,792 @@ +//! Terminal I/O stream operations. + +#[cfg(not(target_os = "wasi"))] +mod cf; +#[cfg(not(target_os = "wasi"))] +mod constants; +#[cfg(not(target_os = "wasi"))] +mod tc; +#[cfg(not(windows))] +mod tty; + +#[cfg(not(target_os = "wasi"))] +pub use cf::{cfgetispeed, cfgetospeed, cfmakeraw, cfsetispeed, cfsetospeed, cfsetspeed}; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B1000000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B1152000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B1500000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B2000000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B2500000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B3000000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B3500000; +#[cfg(not(any( + target_arch = "sparc", + target_arch = "sparc64", + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B4000000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "wasi", +)))] +pub use constants::B460800; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B500000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::B576000; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "wasi", +)))] +pub use constants::B921600; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::BRKINT; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::BS0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::BS1; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::BSDLY; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +pub use constants::CBAUD; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CBAUDEX; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +pub use constants::CIBAUD; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CLOCAL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CMSPAR; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CR0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CR1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CR2; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CR3; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::CRDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CREAD; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::CRTSCTS; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CS5; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CS6; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CS7; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CS8; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CSIZE; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::CSTOPB; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ECHO; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::ECHOCTL; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ECHOE; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ECHOK; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::ECHOKE; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ECHONL; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::ECHOPRT; +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::EXTA; +#[cfg(not(any( + target_os = "emscripten", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::EXTB; +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +pub use constants::EXTPROC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::FF0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::FF1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::FFDLY; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::FLUSHO; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::HUPCL; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ICRNL; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IEXTEN; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IGNBRK; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IGNCR; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IGNPAR; +#[cfg(not(any( + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi", +)))] +pub use constants::IMAXBEL; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::INLCR; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::INPCK; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ISIG; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ISTRIP; +#[cfg(any( + linux_raw, + all( + libc, + any(target_os = "haiku", target_os = "illumos", target_os = "solaris"), + ) +))] +pub use constants::IUCLC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::IUTF8; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::IXANY; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IXOFF; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::IXON; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::NL0; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::NL1; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::NLDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::NOFLSH; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::OCRNL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", +)))] +pub use constants::OFDEL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "wasi", +)))] +pub use constants::OFILL; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "redox", + target_os = "wasi", +)))] +pub use constants::OLCUC; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ONLCR; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ONLRET; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::ONOCR; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::OPOST; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::PARENB; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::PARMRK; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::PARODD; +#[cfg(not(any( + target_os = "ios", + target_os = "macos", + target_os = "redox", + target_os = "wasi" +)))] +pub use constants::PENDIN; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::TAB0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::TAB1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::TAB2; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::TAB3; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "illumos", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::TABDLY; +#[cfg(not(any(target_os = "ios", target_os = "macos", target_os = "wasi")))] +pub use constants::TOSTOP; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::VSWTC; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::VT0; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "fuchsia", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::VT1; +#[cfg(not(any( + all(libc, target_env = "musl"), + target_os = "dragonfly", + target_os = "freebsd", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::VTDLY; +#[cfg(any(linux_raw, all(libc, any(target_arch = "s390x", target_os = "haiku"))))] +pub use constants::XCASE; +#[cfg(not(any( + target_os = "dragonfly", + target_os = "freebsd", + target_os = "haiku", + target_os = "illumos", + target_os = "ios", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd", + target_os = "redox", + target_os = "solaris", + target_os = "wasi", +)))] +pub use constants::XTABS; +#[cfg(not(target_os = "wasi"))] +pub use constants::{ + speed_value, B0, B110, B115200, B1200, B134, B150, B1800, B19200, B200, B230400, B2400, B300, + B38400, B4800, B50, B57600, B600, B75, B9600, ICANON, VEOF, VEOL, VEOL2, VERASE, VINTR, VKILL, + VMIN, VQUIT, VSTART, VSTOP, VSUSP, VTIME, +}; +#[cfg(not(any(target_os = "haiku", target_os = "wasi")))] +pub use constants::{VDISCARD, VLNEXT, VREPRINT, VWERASE}; +#[cfg(not(target_os = "wasi"))] +pub use tc::{ + tcdrain, tcflow, tcflush, tcgetattr, tcgetpgrp, tcgetsid, tcgetwinsize, tcsendbreak, tcsetattr, + tcsetpgrp, tcsetwinsize, Action, OptionalActions, QueueSelector, Speed, Tcflag, Termios, + Winsize, +}; +#[cfg(not(windows))] +pub use tty::isatty; +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +#[cfg(feature = "procfs")] +pub use tty::ttyname; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tc.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tc.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tc.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tc.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,196 @@ +use crate::fd::AsFd; +use crate::process::Pid; +use crate::{backend, io}; + +pub use backend::termios::types::{ + Action, OptionalActions, QueueSelector, Speed, Tcflag, Termios, Winsize, +}; + +/// `tcgetattr(fd)`—Get terminal attributes. +/// +/// Also known as the `TCGETS` operation with `ioctl`. +/// +/// # References +/// - [POSIX `tcgetattr`] +/// - [Linux `ioctl_tty`] +/// - [Linux `termios`] +/// +/// [POSIX `tcgetattr`]: https://pubs.opengroup.org/onlinepubs/9699919799/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 = "wasi")))] +#[inline] +#[doc(alias = "TCGETS")] +pub fn tcgetattr(fd: Fd) -> io::Result { + 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 = "wasi")))] +#[inline] +#[doc(alias = "TIOCGWINSZ")] +pub fn tcgetwinsize(fd: Fd) -> io::Result { + backend::termios::syscalls::tcgetwinsize(fd.as_fd()) +} + +/// `tcgetpgrp(fd)`—Get the terminal foreground process group. +/// +/// Also known as the `TIOCGPGRP` operation with `ioctl`. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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: Fd) -> io::Result { + 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/9699919799/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: Fd, pid: Pid) -> io::Result<()> { + backend::termios::syscalls::tcsetpgrp(fd.as_fd(), pid) +} + +/// `tcsetattr(fd)`—Set terminal attributes. +/// +/// Also known as the `TCSETS` operation with `ioctl`. +/// +/// # References +/// - [POSIX `tcsetattr`] +/// - [Linux `ioctl_tty`] +/// - [Linux `termios`] +/// +/// [POSIX `tcsetattr`]: https://pubs.opengroup.org/onlinepubs/9699919799/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 +#[inline] +#[doc(alias = "TCSETS")] +pub fn tcsetattr( + 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. +/// +/// Also known as the `TCSBRK` operation with `ioctl`, with a duration of 0. +/// +/// This function always uses an effective duration parameter of zero. For the +/// equivalent of a `tcsendbreak` with a non-zero duration parameter, use +/// `tcdrain`. +/// +/// # References +/// - [POSIX `tcsendbreak`] +/// - [Linux `ioctl_tty`] +/// - [Linux `termios`] +/// +/// [POSIX `tcsendbreak`]: https://pubs.opengroup.org/onlinepubs/9699919799/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: 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/9699919799/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 +#[inline] +pub fn tcdrain(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/9699919799/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 +#[inline] +#[doc(alias = "TCFLSH")] +pub fn tcflush(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/9699919799/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 +#[inline] +#[doc(alias = "TCXONC")] +pub fn tcflow(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/9699919799/functions/tcgetsid.html +/// [Linux]: https://man7.org/linux/man-pages/man3/tcgetsid.3.html +#[inline] +#[doc(alias = "TIOCGSID")] +pub fn tcgetsid(fd: Fd) -> io::Result { + 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 +#[inline] +#[doc(alias = "TIOCSWINSZ")] +pub fn tcsetwinsize(fd: Fd, winsize: Winsize) -> io::Result<()> { + backend::termios::syscalls::tcsetwinsize(fd.as_fd(), winsize) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tty.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tty.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tty.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/termios/tty.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,72 @@ +//! Functions which operate on file descriptors which might be terminals. + +use crate::backend; +#[cfg(any( + all(linux_raw, feature = "procfs"), + all(libc, not(any(target_os = "fuchsia", target_os = "wasi"))), +))] +use crate::io; +use backend::fd::AsFd; +#[cfg(any( + all(linux_raw, feature = "procfs"), + all(libc, not(any(target_os = "fuchsia", target_os = "wasi"))), +))] +use { + crate::ffi::CString, crate::path::SMALL_PATH_BUFFER_SIZE, 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/9699919799/functions/isatty.html +/// [Linux]: https://man7.org/linux/man-pages/man3/isatty.3.html +#[inline] +pub fn isatty(fd: Fd) -> bool { + backend::termios::syscalls::isatty(fd.as_fd()) +} + +/// `ttyname_r(fd)` +/// +/// If `reuse` is non-empty, reuse its buffer to store the result if possible. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/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 = "procfs")] +#[cfg_attr(doc_cfg, doc(cfg(feature = "procfs")))] +#[inline] +pub fn ttyname>>(dirfd: Fd, reuse: B) -> io::Result { + _ttyname(dirfd.as_fd(), reuse.into()) +} + +#[cfg(not(any(target_os = "fuchsia", target_os = "wasi")))] +#[cfg(feature = "procfs")] +fn _ttyname(dirfd: BorrowedFd<'_>, mut buffer: Vec) -> io::Result { + // 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 { + match backend::termios::syscalls::ttyname(dirfd, &mut buffer) { + Err(io::Errno::RANGE) => { + buffer.reserve(1); // use `Vec` reallocation strategy to grow capacity exponentially + buffer.resize(buffer.capacity(), 0_u8); + } + Ok(len) => { + buffer.resize(len, 0_u8); + return Ok(CString::new(buffer).unwrap()); + } + Err(errno) => return Err(errno), + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/clock.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/clock.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/clock.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/clock.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,98 @@ +use crate::{backend, io}; + +pub use backend::time::types::Timespec; + +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11. + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +pub use backend::time::types::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/9699919799/functions/clock_nanosleep.html +/// [Linux]: https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11. + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + 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/9699919799/functions/clock_nanosleep.html +/// [Linux]: https://man7.org/linux/man-pages/man2/clock_nanosleep.2.html +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", // FreeBSD 12 has clock_nanosleep, but libc targets FreeBSD 11. + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + 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/9699919799/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(Debug, 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), +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/futex.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/futex.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/futex.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/futex.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,38 @@ +//! Linux `futex`. +//! +//! # Safety +//! +//! Futex is a very low-level mechanism for implementing concurrency +//! primitives. +#![allow(unsafe_code)] + +use crate::thread::Timespec; +use crate::{backend, io}; + +pub use backend::thread::{FutexFlags, FutexOperation}; + +/// `futex(uaddr, op, val, utime, uaddr2, val3)` +/// +/// # References +/// - [Linux `futex` system call] +/// - [Linux `futex` feature] +/// +/// # Safety +/// +/// This is a very low-level feature for implementing synchronization +/// primitives. See the references links above. +/// +/// [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 unsafe fn futex( + uaddr: *mut u32, + op: FutexOperation, + flags: FutexFlags, + val: u32, + utime: *const Timespec, + uaddr2: *mut u32, + val3: u32, +) -> io::Result { + backend::thread::syscalls::futex(uaddr, op, flags, val, utime, uaddr2, val3) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/id.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/id.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/id.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/id.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,17 @@ +use crate::backend; +use crate::process::Pid; + +/// `gettid()`—Returns the thread ID. +/// +/// This returns the OS thread ID, which is not necessarily the same as the +/// `rust::thread::Thread::id` or the pthread ID. +/// +/// # References +/// - [Linux] +/// +/// [Linux]: https://man7.org/linux/man-pages/man2/gettid.2.html +#[inline] +#[must_use] +pub fn gettid() -> Pid { + backend::thread::syscalls::gettid() +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,35 @@ +//! Thread-associated operations. + +#[cfg(not(target_os = "redox"))] +mod clock; +#[cfg(linux_raw)] +mod futex; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod id; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod prctl; +#[cfg(any(target_os = "android", target_os = "linux"))] +mod setns; + +#[cfg(not(any( + target_os = "dragonfly", + target_os = "emscripten", + target_os = "freebsd", + target_os = "haiku", + target_os = "ios", + target_os = "macos", + target_os = "openbsd", + target_os = "redox", + target_os = "wasi", +)))] +pub use clock::{clock_nanosleep_absolute, clock_nanosleep_relative, ClockId}; +#[cfg(not(target_os = "redox"))] +pub use clock::{nanosleep, NanosleepRelativeResult, Timespec}; +#[cfg(linux_raw)] +pub use futex::{futex, FutexFlags, FutexOperation}; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use id::gettid; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use prctl::*; +#[cfg(any(target_os = "android", target_os = "linux"))] +pub use setns::*; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/prctl.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/prctl.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/prctl.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/prctl.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,989 @@ +#![allow(unsafe_code)] + +use core::convert::TryFrom; +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::c::{c_int, c_uint, c_void}; +use crate::backend::process::syscalls; +use crate::ffi::{CStr, CString}; +use crate::io; +use crate::process::{ + prctl_1arg, prctl_2args, prctl_3args, prctl_get_at_arg2_optional, Pid, + PointerAuthenticationKeys, +}; + +// +// 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 { + 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, enable as usize as *mut _) }.map(|_r| ()) +} + +// +// PR_GET_NAME/PR_SET_NAME +// + +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] +pub fn name() -> io::Result { + 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. +/// +/// # 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 for SecureComputingMode { + type Error = io::Errno; + + fn try_from(value: i32) -> Result { + 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 `SIGKILL` 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 `SIGKILL` 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 `proc(5)`. +/// +/// # References +/// - [`prctl(PR_GET_SECCOMP,...)`] +/// +/// [`prctl(PR_GET_SECCOMP,...)`]: https://man7.org/linux/man-pages/man2/prctl.2.html +#[inline] +pub fn secure_computing_mode() -> io::Result { + 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; + +const CAP_CHOWN: u32 = 0; +const CAP_DAC_OVERRIDE: u32 = 1; +const CAP_DAC_READ_SEARCH: u32 = 2; +const CAP_FOWNER: u32 = 3; +const CAP_FSETID: u32 = 4; +const CAP_KILL: u32 = 5; +const CAP_SETGID: u32 = 6; +const CAP_SETUID: u32 = 7; +const CAP_SETPCAP: u32 = 8; +const CAP_LINUX_IMMUTABLE: u32 = 9; +const CAP_NET_BIND_SERVICE: u32 = 10; +const CAP_NET_BROADCAST: u32 = 11; +const CAP_NET_ADMIN: u32 = 12; +const CAP_NET_RAW: u32 = 13; +const CAP_IPC_LOCK: u32 = 14; +const CAP_IPC_OWNER: u32 = 15; +const CAP_SYS_MODULE: u32 = 16; +const CAP_SYS_RAWIO: u32 = 17; +const CAP_SYS_CHROOT: u32 = 18; +const CAP_SYS_PTRACE: u32 = 19; +const CAP_SYS_PACCT: u32 = 20; +const CAP_SYS_ADMIN: u32 = 21; +const CAP_SYS_BOOT: u32 = 22; +const CAP_SYS_NICE: u32 = 23; +const CAP_SYS_RESOURCE: u32 = 24; +const CAP_SYS_TIME: u32 = 25; +const CAP_SYS_TTY_CONFIG: u32 = 26; +const CAP_MKNOD: u32 = 27; +const CAP_LEASE: u32 = 28; +const CAP_AUDIT_WRITE: u32 = 29; +const CAP_AUDIT_CONTROL: u32 = 30; +const CAP_SETFCAP: u32 = 31; +const CAP_MAC_OVERRIDE: u32 = 32; +const CAP_MAC_ADMIN: u32 = 33; +const CAP_SYSLOG: u32 = 34; +const CAP_WAKE_ALARM: u32 = 35; +const CAP_BLOCK_SUSPEND: u32 = 36; +const CAP_AUDIT_READ: u32 = 37; +const CAP_PERFMON: u32 = 38; +const CAP_BPF: u32 = 39; +const CAP_CHECKPOINT_RESTORE: u32 = 40; + +/// Linux per-thread capability. +#[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(u32)] +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 = CAP_CHOWN, + /// Override all DAC access, including ACL execute access if `_POSIX_ACL` is defined. + /// Excluding DAC access covered by [`Capability::LinuxImmutable`]. + DACOverride = 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 = 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 = 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 = 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 = CAP_KILL, + /// Allows `setgid` manipulation. Allows `setgroups`. Allows forged gids on socket + /// credentials passing. + SetGroupID = CAP_SETGID, + /// Allows `set*uid` manipulation (including fsuid). Allows forged pids on socket + /// credentials passing. + SetUserID = 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 = CAP_SETPCAP, + /// Allow modification of `S_IMMUTABLE` and `S_APPEND` file attributes. + LinuxImmutable = CAP_LINUX_IMMUTABLE, + /// Allows binding to TCP/UDP sockets below 1024. Allows binding to ATM VCIs below 32. + NetBindService = CAP_NET_BIND_SERVICE, + /// Allow broadcasting, listen to multicast. + NetBroadcast = 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 = 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 = CAP_NET_RAW, + /// Allow locking of shared memory segments. Allow mlock and mlockall (which doesn't really have + /// anything to do with IPC). + IPCLock = CAP_IPC_LOCK, + /// Override IPC ownership checks. + IPCOwner = CAP_IPC_OWNER, + /// Insert and remove kernel modules - modify kernel without limit. + SystemModule = CAP_SYS_MODULE, + /// Allow ioperm/iopl access. Allow sending USB messages to any device via `/dev/bus/usb`. + SystemRawIO = CAP_SYS_RAWIO, + /// Allow use of `chroot`. + SystemChangeRoot = CAP_SYS_CHROOT, + /// Allow `ptrace` of any process. + SystemProcessTrace = CAP_SYS_PTRACE, + /// Allow configuration of process accounting. + SystemProcessAccounting = 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 = CAP_SYS_ADMIN, + /// Allow use of `reboot`. + SystemBoot = 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 = 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 = CAP_SYS_RESOURCE, + /// Allow manipulation of system clock. Allow `irix_stime` on mips. Allow setting the real-time + /// clock. + SystemTime = CAP_SYS_TIME, + /// Allow configuration of tty devices. Allow `vhangup` of tty. + SystemTTYConfig = CAP_SYS_TTY_CONFIG, + /// Allow the privileged aspects of `mknod`. + MakeNode = CAP_MKNOD, + /// Allow taking of leases on files. + Lease = CAP_LEASE, + /// Allow writing the audit log via unicast netlink socket. + AuditWrite = CAP_AUDIT_WRITE, + /// Allow configuration of audit via unicast netlink socket. + AuditControl = CAP_AUDIT_CONTROL, + /// Set or remove capabilities on files. Map `uid=0` into a child user namespace. + SetFileCapabilities = 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 = 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 = CAP_MAC_ADMIN, + /// Allow configuring the kernel's `syslog` (`printk` behaviour). + SystemLog = CAP_SYSLOG, + /// Allow triggering something that will wake the system. + WakeAlarm = CAP_WAKE_ALARM, + /// Allow preventing system suspends. + BlockSuspend = CAP_BLOCK_SUSPEND, + /// Allow reading the audit log via multicast netlink socket. + AuditRead = CAP_AUDIT_READ, + /// Allow system performance and observability privileged operations using `perf_events`, + /// `i915_perf` and other kernel subsystems. + PerformanceMonitoring = 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, 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 = CAP_BPF, + /// Allow checkpoint/restore related operations. Allow PID selection during `clone3`. + /// Allow writing to `ns_last_pid`. + CheckpointRestore = 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 is_in_capability_bounding_set(capability: Capability) -> io::Result { + 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_capability_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_*`. + 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 0 calls `execve`. + const NO_ROOT = 1_u32 << 0; + /// Set [`NO_ROOT`] irreversibly. + const NO_ROOT_LOCKED = 1_u32 << 1; + /// Setting this flag stops the kernel from adjusting the process's 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. + 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. + 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. + const NO_CAP_AMBIENT_RAISE_LOCKED = 1_u32 << 7; + } +} + +/// 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 { + 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 { + 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) -> 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 { + 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, no_new_privs as usize 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>> { + 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 { + 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, thp_disable as usize 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_capability_set(capability: Capability) -> io::Result { + 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_capability_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 { + 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, +) -> 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. + 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; + } +} + +/// 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, 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, + 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 for SysCallUserDispatchFastSwitch { + type Error = io::Errno; + + fn try_from(value: u8) -> Result { + 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 _, + fast_switch_flag as *const AtomicU8 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 for CoreSchedulingScope { + type Error = io::Errno; + + fn try_from(value: u32) -> Result { + 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/v5.18/admin-guide/hw-vuln/core-scheduling.html +#[inline] +pub fn core_scheduling_cookie(pid: Pid, scope: CoreSchedulingScope) -> io::Result { + let mut value: MaybeUninit = 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/v5.18/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/v5.18/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/v5.18/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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/setns.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/setns.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/thread/setns.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/thread/setns.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,126 @@ +#![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. + 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; + } +} + +/// 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`]. + pub struct UnshareFlags: u32 { + /// `CLONE_FILES`. + const FILES = CLONE_FILES; + /// `CLONE_FS`. + const FS = CLONE_FS; + /// `CLONE_NEWCGROUP`. + const NWCGROUP = 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_SYSVSEM`. + const SYSVSEM = CLONE_SYSVSEM; + } +} + +/// 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 +/// - [`setns`] +/// +/// [`setns`]: https://man7.org/linux/man-pages/man2/setns.2.html +pub fn move_into_link_name_space( + fd: BorrowedFd, + allowed_type: Option, +) -> 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 +/// - [`setns`] +/// +/// [`setns`]: https://man7.org/linux/man-pages/man2/setns.2.html +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)`—Disassociate parts of the current thread's execution +/// context with other threads. +/// +/// # References +/// - [`unshare`] +/// +/// [`unshare`]: https://man7.org/linux/man-pages/man2/unshare.2.html +pub fn unshare(flags: UnshareFlags) -> io::Result<()> { + syscalls::unshare(flags) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/clock.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/clock.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/clock.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/clock.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,56 @@ +use crate::{backend, io}; + +pub use backend::time::types::{Nsecs, Secs, Timespec}; + +/// `clockid_t` +#[cfg(not(target_os = "wasi"))] +pub use backend::time::types::{ClockId, DynamicClockId}; + +/// `clock_getres(id)`—Returns the resolution of a clock. +/// +/// # References +/// - [POSIX] +/// - [Linux] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html +/// [Linux]: https://man7.org/linux/man-pages/man2/clock_getres.2.html +#[cfg(any(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] +/// +/// [POSIX]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html +/// [Linux]: https://man7.org/linux/man-pages/man2/clock_gettime.2.html +#[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/9699919799/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 { + backend::time::syscalls::clock_gettime_dynamic(id) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/mod.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +//! Time-related operations. + +mod clock; +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +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`. +#[cfg(not(any(target_os = "redox", target_os = "wasi")))] +pub use clock::clock_getres; +#[cfg(not(target_os = "wasi"))] +pub use clock::{clock_gettime, clock_gettime_dynamic, ClockId, DynamicClockId}; +pub use clock::{Nsecs, Secs, Timespec}; +#[cfg(any(target_os = "android", target_os = "fuchsia", target_os = "linux"))] +#[cfg(feature = "time")] +pub use timerfd::{ + timerfd_create, timerfd_gettime, timerfd_settime, Itimerspec, TimerfdClockId, TimerfdFlags, + TimerfdTimerFlags, +}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/timerfd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/timerfd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/time/timerfd.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/time/timerfd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,41 @@ +use crate::fd::{AsFd, OwnedFd}; +use crate::{backend, io}; + +pub use backend::time::types::{Itimerspec, TimerfdClockId, TimerfdFlags, TimerfdTimerFlags}; + +/// `timerfd_create(clockid, flags)`—Create a timer. +/// +/// # 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 { + 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: Fd, + flags: TimerfdTimerFlags, + new_value: &Itimerspec, +) -> io::Result { + 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: Fd) -> io::Result { + backend::time::syscalls::timerfd_gettime(fd.as_fd()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/utils.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/utils.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/rustix/src/utils.rs 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/rustix/src/utils.rs 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,29 @@ +/// Convert a `&T` into a `*const T` without using an `as`. +#[inline] +#[allow(dead_code)] +pub(crate) const fn as_ptr(t: &T) -> *const T { + t +} + +/// Convert a `&mut T` into a `*mut T` without using an `as`. +#[inline] +#[allow(dead_code)] +pub(crate) fn as_mut_ptr(t: &mut T) -> *mut T { + t +} + +/// 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. +#[allow(dead_code)] +pub(crate) fn check_raw_pointer(value: *mut core::ffi::c_void) -> Option> { + if (value as usize) + .checked_add(core::mem::size_of::()) + .is_none() + || (value as usize) % core::mem::align_of::() != 0 + { + return None; + } + + core::ptr::NonNull::new(value.cast()) +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"} \ No newline at end of file +{"files":{},"package":"cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -13,13 +13,13 @@ edition = "2018" rust-version = "1.36" name = "serde_json" -version = "1.0.91" +version = "1.0.93" authors = [ "Erick Tryzelaar ", "David Tolnay ", ] description = "A JSON serialization file format" -documentation = "https://docs.serde.rs/serde_json/" +documentation = "https://docs.rs/serde_json" readme = "README.md" keywords = [ "json", @@ -70,7 +70,7 @@ version = "1.0" [dev-dependencies.indoc] -version = "1.0" +version = "2.0" [dev-dependencies.ref-cast] version = "1.0" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/LICENSE-APACHE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/LICENSE-APACHE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/LICENSE-APACHE 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/LICENSE-APACHE 2023-02-17 23:07:30.000000000 +0000 @@ -174,28 +174,3 @@ 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. diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/README.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -18,8 +18,8 @@ You may be looking for: -- [JSON API documentation](https://docs.serde.rs/serde_json/) -- [Serde API documentation](https://docs.serde.rs/serde/) +- [JSON API documentation](https://docs.rs/serde_json) +- [Serde API documentation](https://docs.rs/serde) - [Detailed documentation about Serde](https://serde.rs/) - [Setting up `#[derive(Serialize, Deserialize)]`](https://serde.rs/derive.html) - [Release notes](https://github.com/serde-rs/json/releases) @@ -126,7 +126,7 @@ with [`as_str()`] or avoiding the use of `Value` as described in the following section. -[`as_str()`]: https://docs.serde.rs/serde_json/enum.Value.html#method.as_str +[`as_str()`]: https://docs.rs/serde_json/1/serde_json/enum.Value.html#method.as_str The `Value` representation is sufficient for very basic tasks but can be tedious to work with for anything more significant. Error handling is verbose to @@ -363,14 +363,14 @@ [`serde-json-core`]: https://github.com/rust-embedded-community/serde-json-core -[value]: https://docs.serde.rs/serde_json/value/enum.Value.html -[from_str]: https://docs.serde.rs/serde_json/de/fn.from_str.html -[from_slice]: https://docs.serde.rs/serde_json/de/fn.from_slice.html -[from_reader]: https://docs.serde.rs/serde_json/de/fn.from_reader.html -[to_string]: https://docs.serde.rs/serde_json/ser/fn.to_string.html -[to_vec]: https://docs.serde.rs/serde_json/ser/fn.to_vec.html -[to_writer]: https://docs.serde.rs/serde_json/ser/fn.to_writer.html -[macro]: https://docs.serde.rs/serde_json/macro.json.html +[value]: https://docs.rs/serde_json/1/serde_json/value/enum.Value.html +[from_str]: https://docs.rs/serde_json/1/serde_json/de/fn.from_str.html +[from_slice]: https://docs.rs/serde_json/1/serde_json/de/fn.from_slice.html +[from_reader]: https://docs.rs/serde_json/1/serde_json/de/fn.from_reader.html +[to_string]: https://docs.rs/serde_json/1/serde_json/ser/fn.to_string.html +[to_vec]: https://docs.rs/serde_json/1/serde_json/ser/fn.to_vec.html +[to_writer]: https://docs.rs/serde_json/1/serde_json/ser/fn.to_writer.html +[macro]: https://docs.rs/serde_json/1/serde_json/macro.json.html
diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -104,7 +104,7 @@ //! a JSON string to a Rust string with [`as_str()`] or avoiding the use of //! `Value` as described in the following section. //! -//! [`as_str()`]: https://docs.serde.rs/serde_json/enum.Value.html#method.as_str +//! [`as_str()`]: crate::Value::as_str //! //! The `Value` representation is sufficient for very basic tasks but can be //! tedious to work with for anything more significant. Error handling is @@ -290,17 +290,17 @@ //! For JSON support in Serde without a memory allocator, please see the //! [`serde-json-core`] crate. //! -//! [value]: https://docs.serde.rs/serde_json/value/enum.Value.html -//! [from_str]: https://docs.serde.rs/serde_json/de/fn.from_str.html -//! [from_slice]: https://docs.serde.rs/serde_json/de/fn.from_slice.html -//! [from_reader]: https://docs.serde.rs/serde_json/de/fn.from_reader.html -//! [to_string]: https://docs.serde.rs/serde_json/ser/fn.to_string.html -//! [to_vec]: https://docs.serde.rs/serde_json/ser/fn.to_vec.html -//! [to_writer]: https://docs.serde.rs/serde_json/ser/fn.to_writer.html -//! [macro]: https://docs.serde.rs/serde_json/macro.json.html +//! [value]: crate::value::Value +//! [from_str]: crate::de::from_str +//! [from_slice]: crate::de::from_slice +//! [from_reader]: crate::de::from_reader +//! [to_string]: crate::ser::to_string +//! [to_vec]: crate::ser::to_vec +//! [to_writer]: crate::ser::to_writer +//! [macro]: crate::json //! [`serde-json-core`]: https://github.com/rust-embedded-community/serde-json-core -#![doc(html_root_url = "https://docs.rs/serde_json/1.0.91")] +#![doc(html_root_url = "https://docs.rs/serde_json/1.0.93")] // Ignored clippy lints #![allow( clippy::collapsible_else_if, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/raw.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/raw.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/raw.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/raw.rs 2023-02-17 23:07:30.000000000 +0000 @@ -112,7 +112,7 @@ /// raw_value: Box, /// } /// ``` -#[repr(C)] +#[cfg_attr(not(doc), repr(transparent))] #[cfg_attr(docsrs, doc(cfg(feature = "raw_value")))] pub struct RawValue { json: str, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/value/mod.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/value/mod.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/value/mod.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/value/mod.rs 2023-02-17 23:07:30.000000000 +0000 @@ -85,10 +85,10 @@ //! # untyped_example().unwrap(); //! ``` //! -//! [macro]: https://docs.serde.rs/serde_json/macro.json.html -//! [from_str]: https://docs.serde.rs/serde_json/de/fn.from_str.html -//! [from_slice]: https://docs.serde.rs/serde_json/de/fn.from_slice.html -//! [from_reader]: https://docs.serde.rs/serde_json/de/fn.from_reader.html +//! [macro]: crate::json +//! [from_str]: crate::de::from_str +//! [from_slice]: crate::de::from_slice +//! [from_reader]: crate::de::from_reader use crate::error::Error; use crate::io; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/value/ser.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/value/ser.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/src/value/ser.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/src/value/ser.rs 2023-02-17 23:07:30.000000000 +0000 @@ -5,6 +5,8 @@ use alloc::borrow::ToOwned; use alloc::string::{String, ToString}; use alloc::vec::Vec; +#[cfg(not(feature = "arbitrary_precision"))] +use core::convert::TryFrom; use core::fmt::Display; use core::result; use serde::ser::{Impossible, Serialize}; @@ -92,9 +94,22 @@ Ok(Value::Number(value.into())) } - #[cfg(feature = "arbitrary_precision")] fn serialize_i128(self, value: i128) -> Result { - Ok(Value::Number(value.into())) + #[cfg(feature = "arbitrary_precision")] + { + Ok(Value::Number(value.into())) + } + + #[cfg(not(feature = "arbitrary_precision"))] + { + if let Ok(value) = u64::try_from(value) { + Ok(Value::Number(value.into())) + } else if let Ok(value) = i64::try_from(value) { + Ok(Value::Number(value.into())) + } else { + Err(Error::syntax(ErrorCode::NumberOutOfRange, 0, 0)) + } + } } #[inline] @@ -117,9 +132,20 @@ Ok(Value::Number(value.into())) } - #[cfg(feature = "arbitrary_precision")] fn serialize_u128(self, value: u128) -> Result { - Ok(Value::Number(value.into())) + #[cfg(feature = "arbitrary_precision")] + { + Ok(Value::Number(value.into())) + } + + #[cfg(not(feature = "arbitrary_precision"))] + { + if let Ok(value) = u64::try_from(value) { + Ok(Value::Number(value.into())) + } else { + Err(Error::syntax(ErrorCode::NumberOutOfRange, 0, 0)) + } + } } #[inline] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/tests/test.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/tests/test.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/serde_json/tests/test.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/serde_json/tests/test.rs 2023-02-17 23:07:30.000000000 +0000 @@ -2180,6 +2180,27 @@ ]); } +#[test] +fn test_integer128_to_value() { + let signed = &[i128::from(i64::min_value()), i128::from(u64::max_value())]; + let unsigned = &[0, u128::from(u64::max_value())]; + + for integer128 in signed { + let expected = integer128.to_string(); + assert_eq!(to_value(integer128).unwrap().to_string(), expected); + } + + for integer128 in unsigned { + let expected = integer128.to_string(); + assert_eq!(to_value(integer128).unwrap().to_string(), expected); + } + + if !cfg!(feature = "arbitrary_precision") { + let err = to_value(u128::from(u64::max_value()) + 1).unwrap_err(); + assert_eq!(err.to_string(), "number out of range"); + } +} + #[cfg(feature = "raw_value")] #[test] fn test_borrowed_raw_value() { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"44d199ccf8f606592df2d145db26f2aa45344e23c64b074cc5a4047f1d99b0f7"} \ No newline at end of file +{"files":{},"package":"060eb131099764cd2ac39ebba5f56457dde50f0812ffbe0ac1fd7844de0a1a12"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.lock cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.lock --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.lock 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.lock 2023-02-17 23:07:30.000000000 +0000 @@ -4,9 +4,9 @@ [[package]] name = "addr2line" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ "gimli", ] @@ -19,35 +19,18 @@ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] [[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.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ "addr2line", "cc", @@ -66,18 +49,19 @@ [[package]] name = "bstr" -version = "0.2.17" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "b7f0778972c64420fdedc63f09919c8a88bda7b25135357fd25a5d9f3257e832" dependencies = [ "memchr", + "serde", ] [[package]] name = "cc" -version = "1.0.73" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" [[package]] name = "cfg-if" @@ -87,26 +71,24 @@ [[package]] name = "clap" -version = "3.2.17" +version = "4.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" +checksum = "3339b77607ffdf358f6b1146107785d6cdb2b3f251e1920e96c45a0fc08a7b18" dependencies = [ - "atty", "bitflags", "clap_derive", "clap_lex", - "indexmap", + "is-terminal", "once_cell", "strsim", "termcolor", - "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.17" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" +checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" dependencies = [ "heck", "proc-macro-error", @@ -117,29 +99,29 @@ [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" dependencies = [ "os_str_bytes", ] [[package]] name = "concolor" -version = "0.0.8" +version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015267563b1df20adccdd00cb05257b1dfbea70a04928e9cf88ffb850c1a40af" +checksum = "318d6c16e73b3a900eb212ad6a82fc7d298c5ab8184c7a9998646455bc474a16" dependencies = [ - "atty", "bitflags", "concolor-query", + "is-terminal", ] [[package]] name = "concolor-query" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6417fe6fc03a8b533fd2177742eeb39a90c7233eedec7bac96d4d6b69a09449" +checksum = "82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317" [[package]] name = "content_inspector" @@ -151,82 +133,55 @@ ] [[package]] -name = "crossbeam-channel" -version = "0.5.6" +name = "document-features" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "e493c573fce17f00dcab13b6ac057994f3ce17d1af4dc39bfd482b83c6eb6157" dependencies = [ - "cfg-if", - "crossbeam-utils", + "litrs", ] [[package]] -name = "crossbeam-deque" -version = "0.8.2" +name = "dunce" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] +checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" [[package]] -name = "crossbeam-epoch" -version = "0.9.10" +name = "errno" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset", - "once_cell", - "scopeguard", + "errno-dragonfly", + "libc", + "winapi", ] [[package]] -name = "crossbeam-utils" -version = "0.8.11" +name = "errno-dragonfly" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "cfg-if", - "once_cell", + "cc", + "libc", ] [[package]] -name = "document-features" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d99bbe945402eb228b85cdfc7020cf7422574976861c642b28255d0a49606d79" - -[[package]] -name = "dunce" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453440c271cf5577fd2a40e4942540cb7d0d2f85e27c8d07dd0023c925a67541" - -[[package]] -name = "either" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" - -[[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] [[package]] name = "filetime" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" dependencies = [ "cfg-if", "libc", @@ -242,15 +197,15 @@ [[package]] name = "gimli" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", "bstr", @@ -260,33 +215,32 @@ ] [[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" dependencies = [ "libc", ] [[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] name = "ignore" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ - "crossbeam-utils", "globset", "lazy_static", "log", @@ -299,25 +253,43 @@ ] [[package]] -name = "indexmap" -version = "1.9.1" +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" dependencies = [ - "autocfg", - "hashbrown", + "libc", + "windows-sys", ] [[package]] -name = "instant" -version = "0.1.12" +name = "is-terminal" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef" dependencies = [ - "cfg-if", + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix", + "windows-sys", ] [[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -325,23 +297,34 @@ [[package]] name = "libc" -version = "0.2.131" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c3b4822ccebfa39c02fc03d1534441b22ead323fa0f48bb7ddd8e6ba076a40" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libtest-mimic" -version = "0.4.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc195aab5b803465bf614a5a4765741abce6c8d64e7d8ca57acd2923661fba9f" +checksum = "d7b603516767d1ab23d0de09d023e62966c3322f7148297c35cf3d97aa8b37fa" dependencies = [ "clap", - "crossbeam-channel", - "rayon", "termcolor", + "threadpool", ] [[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "litrs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9275e0933cf8bb20f008924c0cb07a0692fe54d8064996520bf998de9eb79aa" + +[[package]] name = "log" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -357,19 +340,10 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] @@ -382,44 +356,44 @@ [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] [[package]] name = "object" -version = "0.29.0" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.13.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "os_pipe" -version = "1.0.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c92f2b54f081d635c77e7120862d48db8e91f7f21cef23ab1b4fe9971c59f55" +checksum = "a53dbb20faf34b16087a931834cba2d7a73cc74af2b7ef345a4c8324e2409a12" dependencies = [ "libc", - "winapi", + "windows-sys", ] [[package]] name = "os_str_bytes" -version = "6.3.0" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "proc-macro-error" @@ -447,47 +421,23 @@ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ "proc-macro2", ] [[package]] -name = "rayon" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] name = "redox_syscall" version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -498,9 +448,9 @@ [[package]] name = "regex" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -509,9 +459,9 @@ [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "remove_dir_all" @@ -529,6 +479,26 @@ checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" [[package]] +name = "rustix" +version = "0.36.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "ryu" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" + +[[package]] name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -538,20 +508,31 @@ ] [[package]] -name = "scopeguard" -version = "1.1.0" +name = "serde" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" + +[[package]] +name = "serde_json" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +dependencies = [ + "itoa", + "ryu", + "serde", +] [[package]] name = "similar" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803" +checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "snapbox" -version = "0.3.3" +version = "0.4.5" dependencies = [ "backtrace", "concolor", @@ -560,22 +541,25 @@ "dunce", "filetime", "ignore", + "libc", "libtest-mimic", "normalize-line-endings", "os_pipe", + "serde_json", "similar", "snapbox-macros", "tempfile", "wait-timeout", "walkdir", + "windows-sys", "yansi", ] [[package]] name = "snapbox-macros" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a253e6f894cfa440cba00600a249fa90869d8e0ec45ab274a456e043a0ce8f2" +checksum = "485e65c1203eb37244465e857d15a26d3a85a5410648ccb53b18bd44cb3a7336" [[package]] name = "strsim" @@ -585,9 +569,9 @@ [[package]] name = "syn" -version = "1.0.99" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" dependencies = [ "proc-macro2", "quote", @@ -610,33 +594,37 @@ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] -name = "textwrap" -version = "0.15.0" +name = "thread_local" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] [[package]] -name = "thread_local" -version = "1.1.4" +name = "threadpool" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" dependencies = [ - "once_cell", + "num_cpus", ] [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "version_check" @@ -697,46 +685,69 @@ [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", "windows_i686_msvc", "windows_x86_64_gnu", + "windows_x86_64_gnullvm", "windows_x86_64_msvc", ] [[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "yansi" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -11,9 +11,9 @@ [package] edition = "2021" -rust-version = "1.56.1" +rust-version = "1.60.0" name = "snapbox" -version = "0.3.3" +version = "0.4.5" include = [ "build.rs", "src/**/*", @@ -36,7 +36,6 @@ categories = ["development-tools::testing"] license = "MIT OR Apache-2.0" repository = "https://github.com/assert-rs/trycmd/" -resolver = "2" [package.metadata.docs.rs] all-features = true @@ -46,7 +45,7 @@ ] cargo-args = [ "-Zunstable-options", - "-Zrustdoc-scrape-examples=examples", + "-Zrustdoc-scrape-examples", ] [[package.metadata.release.pre-release-replacements]] @@ -92,7 +91,8 @@ optional = true [dependencies.concolor] -version = "0.0.8" +version = "0.0.11" +features = ["std"] optional = true [dependencies.content_inspector] @@ -100,7 +100,7 @@ optional = true [dependencies.document-features] -version = "0.2.3" +version = "0.2.6" optional = true [dependencies.dunce] @@ -115,8 +115,12 @@ version = "0.4" optional = true +[dependencies.libc] +version = "0.2.137" +optional = true + [dependencies.libtest-mimic] -version = "0.4.0" +version = "0.6.0" optional = true [dependencies.normalize-line-endings] @@ -126,6 +130,10 @@ version = "1.0" optional = true +[dependencies.serde_json] +version = "1.0.85" +optional = true + [dependencies.similar] version = "2.1.0" features = ["inline"] @@ -146,18 +154,25 @@ version = "2.3.2" optional = true +#[dependencies.windows-sys] +#version = "0.45.0" +#features = ["Win32_Foundation"] +#optional = true + [dependencies.yansi] version = "0.5.0" optional = true [features] cmd = [ - "os_pipe", - "wait-timeout", + "dep:os_pipe", + "dep:wait-timeout", + "dep:libc", +# "dep:windows-sys", ] color = [ - "yansi", - "concolor/std", + "dep:yansi", + "concolor", ] color-auto = [ "color", @@ -165,22 +180,24 @@ ] debug = [ "snapbox-macros/debug", - "backtrace", + "dep:backtrace", ] default = [ "color-auto", "diff", ] -detect-encoding = ["content_inspector"] -diff = ["similar"] +detect-encoding = ["dep:content_inspector"] +diff = ["dep:similar"] harness = [ - "libtest-mimic", - "ignore", + "dep:libtest-mimic", + "dep:ignore", ] +json = ["structured-data"] path = [ - "tempfile", - "walkdir", - "dunce", + "dep:tempfile", + "dep:walkdir", + "dep:dunce", "detect-encoding", - "filetime", + "dep:filetime", ] +structured-data = ["dep:serde_json"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/remove-windows-deps.patch cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/remove-windows-deps.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/remove-windows-deps.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/remove-windows-deps.patch 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,26 @@ +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -154,10 +154,10 @@ + version = "2.3.2" + optional = true + +-[dependencies.windows-sys] +-version = "0.45.0" +-features = ["Win32_Foundation"] +-optional = true ++#[dependencies.windows-sys] ++#version = "0.45.0" ++#features = ["Win32_Foundation"] ++#optional = true + + [dependencies.yansi] + version = "0.5.0" +@@ -168,7 +168,7 @@ + "dep:os_pipe", + "dep:wait-timeout", + "dep:libc", +- "dep:windows-sys", ++# "dep:windows-sys", + ] + color = [ + "dep:yansi", diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +remove-windows-deps.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/assert.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/assert.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/assert.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/assert.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,4 +1,4 @@ -use crate::data::DataFormat; +use crate::data::{DataFormat, NormalizeMatches, NormalizeNewlines, NormalizePaths}; use crate::Action; /// Snapshot assertion against a file's contents @@ -178,16 +178,14 @@ expected: crate::Result, mut actual: crate::Data, ) -> (crate::Result, crate::Data) { - let expected = expected.map(|d| d.map_text(crate::utils::normalize_lines)); + let expected = expected.map(|d| d.normalize(NormalizeNewlines)); // On `expected` being an error, make a best guess let format = expected .as_ref() .map(|d| d.format()) .unwrap_or(DataFormat::Text); - actual = actual - .try_coerce(format) - .map_text(|s| crate::utils::normalize_lines(s)); + actual = actual.try_coerce(format).normalize(NormalizeNewlines); (expected, actual) } @@ -197,17 +195,20 @@ expected: crate::Result, mut actual: crate::Data, ) -> (crate::Result, crate::Data) { - let expected = expected.map(|d| d.map_text(crate::utils::normalize_lines)); + let expected = expected.map(|d| d.normalize(NormalizeNewlines)); // On `expected` being an error, make a best guess - if let (Some(expected), format) = expected - .as_ref() - .map(|d| (d.as_str(), d.format())) - .unwrap_or((Some(""), DataFormat::Text)) - { - actual = actual - .try_coerce(format) - .map_text(|s| self.normalize_text(s)) - .map_text(|t| self.substitutions.normalize(t, expected)); + let format = expected.as_ref().map(|e| e.format()).unwrap_or_default(); + actual = actual.try_coerce(format); + + if self.normalize_paths { + actual = actual.normalize(NormalizePaths); + } + // Always normalize new lines + actual = actual.normalize(NormalizeNewlines); + + // If expected is not an error normalize matches + if let Ok(expected) = expected.as_ref() { + actual = actual.normalize(NormalizeMatches::new(&self.substitutions, expected)); } (expected, actual) @@ -290,14 +291,6 @@ Ok(()) } } - - fn normalize_text(&self, data: &str) -> String { - let mut data = crate::utils::normalize_lines(data); - if self.normalize_paths { - data = crate::utils::normalize_paths(&data); - } - data - } } /// # Directory Assertions diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/bin/snap-fixture.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/bin/snap-fixture.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/bin/snap-fixture.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/bin/snap-fixture.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,3 +1,5 @@ +//! For `snapbox`s tests only + use std::env; use std::error::Error; use std::io; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/cmd.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/cmd.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/cmd.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/cmd.rs 2023-02-17 23:07:30.000000000 +0000 @@ -477,7 +477,9 @@ let desc = format!( "Expected {}, was {}", self.config.palette.info("success"), - self.config.palette.error(display_code(&self.output)) + self.config + .palette + .error(display_exit_status(self.output.status)) ); use std::fmt::Write; @@ -527,7 +529,9 @@ let desc = format!( "Expected {}, was {}", self.config.palette.info("interrupted"), - self.config.palette.error(display_code(&self.output)) + self.config + .palette + .error(display_exit_status(self.output.status)) ); use std::fmt::Write; @@ -557,7 +561,9 @@ let desc = format!( "Expected {}, was {}", self.config.palette.info(expected), - self.config.palette.error(display_code(&self.output)) + self.config + .palette + .error(display_exit_status(self.output.status)) ); use std::fmt::Write; @@ -851,7 +857,11 @@ } fn write_status(&self, writer: &mut dyn std::fmt::Write) -> Result<(), std::fmt::Error> { - writeln!(writer, "Exit status: {}", display_code(&self.output))?; + writeln!( + writer, + "Exit status: {}", + display_exit_status(self.output.status) + )?; Ok(()) } @@ -876,8 +886,91 @@ } } -fn display_code(output: &std::process::Output) -> String { - if let Some(code) = output.status.code() { +/// Converts an [`std::process::ExitStatus`] to a human-readable value +#[cfg(not(feature = "cmd"))] +pub fn display_exit_status(status: std::process::ExitStatus) -> String { + basic_exit_status(status) +} + +/// Converts an [`std::process::ExitStatus`] to a human-readable value +#[cfg(feature = "cmd")] +pub fn display_exit_status(status: std::process::ExitStatus) -> String { + #[cfg(unix)] + fn detailed_exit_status(status: std::process::ExitStatus) -> Option { + use std::os::unix::process::*; + + let signal = status.signal()?; + let name = match signal as libc::c_int { + libc::SIGABRT => ", SIGABRT: process abort signal", + libc::SIGALRM => ", SIGALRM: alarm clock", + libc::SIGFPE => ", SIGFPE: erroneous arithmetic operation", + libc::SIGHUP => ", SIGHUP: hangup", + libc::SIGILL => ", SIGILL: illegal instruction", + libc::SIGINT => ", SIGINT: terminal interrupt signal", + libc::SIGKILL => ", SIGKILL: kill", + libc::SIGPIPE => ", SIGPIPE: write on a pipe with no one to read", + libc::SIGQUIT => ", SIGQUIT: terminal quit signal", + libc::SIGSEGV => ", SIGSEGV: invalid memory reference", + libc::SIGTERM => ", SIGTERM: termination signal", + libc::SIGBUS => ", SIGBUS: access to undefined memory", + #[cfg(not(target_os = "haiku"))] + libc::SIGSYS => ", SIGSYS: bad system call", + libc::SIGTRAP => ", SIGTRAP: trace/breakpoint trap", + _ => "", + }; + Some(format!("signal: {}{}", signal, name)) + } + + #[cfg(windows)] + fn detailed_exit_status(status: std::process::ExitStatus) -> Option { + use windows_sys::Win32::Foundation::*; + + let extra = match status.code().unwrap() as NTSTATUS { + STATUS_ACCESS_VIOLATION => "STATUS_ACCESS_VIOLATION", + STATUS_IN_PAGE_ERROR => "STATUS_IN_PAGE_ERROR", + STATUS_INVALID_HANDLE => "STATUS_INVALID_HANDLE", + STATUS_INVALID_PARAMETER => "STATUS_INVALID_PARAMETER", + STATUS_NO_MEMORY => "STATUS_NO_MEMORY", + STATUS_ILLEGAL_INSTRUCTION => "STATUS_ILLEGAL_INSTRUCTION", + STATUS_NONCONTINUABLE_EXCEPTION => "STATUS_NONCONTINUABLE_EXCEPTION", + STATUS_INVALID_DISPOSITION => "STATUS_INVALID_DISPOSITION", + STATUS_ARRAY_BOUNDS_EXCEEDED => "STATUS_ARRAY_BOUNDS_EXCEEDED", + STATUS_FLOAT_DENORMAL_OPERAND => "STATUS_FLOAT_DENORMAL_OPERAND", + STATUS_FLOAT_DIVIDE_BY_ZERO => "STATUS_FLOAT_DIVIDE_BY_ZERO", + STATUS_FLOAT_INEXACT_RESULT => "STATUS_FLOAT_INEXACT_RESULT", + STATUS_FLOAT_INVALID_OPERATION => "STATUS_FLOAT_INVALID_OPERATION", + STATUS_FLOAT_OVERFLOW => "STATUS_FLOAT_OVERFLOW", + STATUS_FLOAT_STACK_CHECK => "STATUS_FLOAT_STACK_CHECK", + STATUS_FLOAT_UNDERFLOW => "STATUS_FLOAT_UNDERFLOW", + STATUS_INTEGER_DIVIDE_BY_ZERO => "STATUS_INTEGER_DIVIDE_BY_ZERO", + STATUS_INTEGER_OVERFLOW => "STATUS_INTEGER_OVERFLOW", + STATUS_PRIVILEGED_INSTRUCTION => "STATUS_PRIVILEGED_INSTRUCTION", + STATUS_STACK_OVERFLOW => "STATUS_STACK_OVERFLOW", + STATUS_DLL_NOT_FOUND => "STATUS_DLL_NOT_FOUND", + STATUS_ORDINAL_NOT_FOUND => "STATUS_ORDINAL_NOT_FOUND", + STATUS_ENTRYPOINT_NOT_FOUND => "STATUS_ENTRYPOINT_NOT_FOUND", + STATUS_CONTROL_C_EXIT => "STATUS_CONTROL_C_EXIT", + STATUS_DLL_INIT_FAILED => "STATUS_DLL_INIT_FAILED", + STATUS_FLOAT_MULTIPLE_FAULTS => "STATUS_FLOAT_MULTIPLE_FAULTS", + STATUS_FLOAT_MULTIPLE_TRAPS => "STATUS_FLOAT_MULTIPLE_TRAPS", + STATUS_REG_NAT_CONSUMPTION => "STATUS_REG_NAT_CONSUMPTION", + STATUS_HEAP_CORRUPTION => "STATUS_HEAP_CORRUPTION", + STATUS_STACK_BUFFER_OVERRUN => "STATUS_STACK_BUFFER_OVERRUN", + STATUS_ASSERTION_FAILURE => "STATUS_ASSERTION_FAILURE", + _ => return None, + }; + Some(extra.to_owned()) + } + + if let Some(extra) = detailed_exit_status(status) { + format!("{} ({})", basic_exit_status(status), extra) + } else { + basic_exit_status(status) + } +} + +fn basic_exit_status(status: std::process::ExitStatus) -> String { + if let Some(code) = status.code() { code.to_string() } else { "interrupted".to_owned() diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/data.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/data.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/data.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/data.rs 2023-02-17 23:07:30.000000000 +0000 @@ -10,12 +10,22 @@ enum DataInner { Binary(Vec), Text(String), + #[cfg(feature = "structured-data")] + Json(serde_json::Value), } #[derive(Clone, Debug, PartialEq, Eq, Copy, Hash)] pub enum DataFormat { Binary, Text, + #[cfg(feature = "json")] + Json, +} + +impl Default for DataFormat { + fn default() -> Self { + DataFormat::Text + } } impl Data { @@ -33,6 +43,13 @@ } } + #[cfg(feature = "json")] + pub fn json(raw: impl Into) -> Self { + Self { + inner: DataInner::Json(raw.into()), + } + } + /// Empty test data pub fn new() -> Self { Self::text("") @@ -55,11 +72,26 @@ .map_err(|e| format!("Failed to read {}: {}", path.display(), e))?; Self::text(data) } + #[cfg(feature = "json")] + DataFormat::Json => { + let data = std::fs::read_to_string(&path) + .map_err(|e| format!("Failed to read {}: {}", path.display(), e))?; + Self::json(serde_json::from_str::(&data).unwrap()) + } }, None => { let data = std::fs::read(&path) .map_err(|e| format!("Failed to read {}: {}", path.display(), e))?; - Self::binary(data).try_coerce(DataFormat::Text) + let data = Self::binary(data); + match path + .extension() + .and_then(|e| e.to_str()) + .unwrap_or_default() + { + #[cfg(feature = "json")] + "json" => data.try_coerce(DataFormat::Json), + _ => data.try_coerce(DataFormat::Text), + } } }; Ok(data) @@ -79,41 +111,19 @@ /// Post-process text /// /// See [utils][crate::utils] - pub fn map_text(self, op: impl FnOnce(&str) -> String) -> Self { - match self.inner { - DataInner::Binary(data) => Self::binary(data), - DataInner::Text(data) => Self::text(op(&data)), - } - } - - /// Coerce to a string - /// - /// Note: this will **not** do a binary-content check - pub fn make_text(&mut self) -> Result<(), std::str::Utf8Error> { - *self = Self::text(std::mem::take(self).into_string()?); - Ok(()) + pub fn normalize(self, op: impl Normalize) -> Self { + op.normalize(self) } - /// Coerce to a string + /// Return the underlying `String` /// - /// Note: this will **not** do a binary-content check - pub fn into_string(self) -> Result { - match self.inner { - DataInner::Binary(data) => { - let data = String::from_utf8(data).map_err(|e| e.utf8_error())?; - Ok(data) - } - DataInner::Text(data) => Ok(data), - } - } - - /// Return the underlying `str` - /// - /// Note: this will not inspect binary data for being a valid `str`. - pub fn as_str(&self) -> Option<&str> { + /// Note: this will not inspect binary data for being a valid `String`. + pub fn render(&self) -> Option { match &self.inner { DataInner::Binary(_) => None, - DataInner::Text(data) => Some(data.as_str()), + DataInner::Text(data) => Some(data.to_owned()), + #[cfg(feature = "json")] + DataInner::Json(value) => Some(serde_json::to_string_pretty(value).unwrap()), } } @@ -121,28 +131,57 @@ match &self.inner { DataInner::Binary(data) => data.clone(), DataInner::Text(data) => data.clone().into_bytes(), + #[cfg(feature = "json")] + DataInner::Json(value) => serde_json::to_vec_pretty(value).unwrap(), } } pub fn try_coerce(self, format: DataFormat) -> Self { - match format { - DataFormat::Binary => Self::binary(self.to_bytes()), - DataFormat::Text => match self.inner { - DataInner::Binary(data) => { - if is_binary(&data) { - Self::binary(data) - } else { - match String::from_utf8(data) { - Ok(data) => Self::text(data), - Err(err) => { - let data = err.into_bytes(); - Self::binary(data) + match (self.inner, format) { + (DataInner::Binary(inner), DataFormat::Binary) => Self::binary(inner), + (DataInner::Text(inner), DataFormat::Text) => Self::text(inner), + #[cfg(feature = "json")] + (DataInner::Json(inner), DataFormat::Json) => Self::json(inner), + (DataInner::Binary(inner), _) => { + if is_binary(&inner) { + Self::binary(inner) + } else { + match String::from_utf8(inner) { + Ok(str) => { + let coerced = Self::text(str).try_coerce(format); + // if the Text cannot be coerced into the correct format + // reset it back to Binary + if coerced.format() != format { + coerced.try_coerce(DataFormat::Binary) + } else { + coerced } } + Err(err) => { + let bin = err.into_bytes(); + Self::binary(bin) + } } } - DataInner::Text(data) => Self::text(data), - }, + } + #[cfg(feature = "json")] + (DataInner::Text(inner), DataFormat::Json) => { + match serde_json::from_str::(&inner) { + Ok(json) => Self::json(json), + Err(_) => Self::text(inner), + } + } + (inner, DataFormat::Binary) => Self::binary(Self { inner }.to_bytes()), + // This variant is already covered unless structured data is enabled + #[cfg(feature = "structured-data")] + (inner, DataFormat::Text) => { + let remake = Self { inner }; + if let Some(str) = remake.render() { + Self::text(str) + } else { + remake + } + } } } @@ -151,6 +190,8 @@ match &self.inner { DataInner::Binary(_) => DataFormat::Binary, DataInner::Text(_) => DataFormat::Text, + #[cfg(feature = "json")] + DataInner::Json(_) => DataFormat::Json, } } } @@ -160,6 +201,8 @@ match &self.inner { DataInner::Binary(data) => String::from_utf8_lossy(data).fmt(f), DataInner::Text(data) => data.fmt(f), + #[cfg(feature = "json")] + DataInner::Json(data) => serde_json::to_string_pretty(data).unwrap().fmt(f), } } } @@ -206,6 +249,131 @@ } } +pub trait Normalize { + fn normalize(&self, data: Data) -> Data; +} + +pub struct NormalizeNewlines; +impl Normalize for NormalizeNewlines { + fn normalize(&self, data: Data) -> Data { + match data.inner { + DataInner::Binary(bin) => Data::binary(bin), + DataInner::Text(text) => { + let lines = crate::utils::normalize_lines(&text); + Data::text(lines) + } + #[cfg(feature = "json")] + DataInner::Json(value) => { + let mut value = value; + normalize_value(&mut value, crate::utils::normalize_lines); + Data::json(value) + } + } + } +} + +pub struct NormalizePaths; +impl Normalize for NormalizePaths { + fn normalize(&self, data: Data) -> Data { + match data.inner { + DataInner::Binary(bin) => Data::binary(bin), + DataInner::Text(text) => { + let lines = crate::utils::normalize_paths(&text); + Data::text(lines) + } + #[cfg(feature = "json")] + DataInner::Json(value) => { + let mut value = value; + normalize_value(&mut value, crate::utils::normalize_paths); + Data::json(value) + } + } + } +} + +pub struct NormalizeMatches<'a> { + substitutions: &'a crate::Substitutions, + pattern: &'a Data, +} + +impl<'a> NormalizeMatches<'a> { + pub fn new(substitutions: &'a crate::Substitutions, pattern: &'a Data) -> Self { + NormalizeMatches { + substitutions, + pattern, + } + } +} + +impl Normalize for NormalizeMatches<'_> { + fn normalize(&self, data: Data) -> Data { + match data.inner { + DataInner::Binary(bin) => Data::binary(bin), + DataInner::Text(text) => { + let lines = self + .substitutions + .normalize(&text, &self.pattern.render().unwrap()); + Data::text(lines) + } + #[cfg(feature = "json")] + DataInner::Json(value) => { + let mut value = value; + if let DataInner::Json(exp) = &self.pattern.inner { + normalize_value_matches(&mut value, exp, self.substitutions); + } + Data::json(value) + } + } + } +} + +#[cfg(feature = "structured-data")] +fn normalize_value(value: &mut serde_json::Value, op: fn(&str) -> String) { + match value { + serde_json::Value::String(str) => { + *str = op(str); + } + serde_json::Value::Array(arr) => { + arr.iter_mut().for_each(|value| normalize_value(value, op)); + } + serde_json::Value::Object(obj) => { + obj.iter_mut() + .for_each(|(_, value)| normalize_value(value, op)); + } + _ => {} + } +} + +#[cfg(feature = "structured-data")] +fn normalize_value_matches( + actual: &mut serde_json::Value, + expected: &serde_json::Value, + substitutions: &crate::Substitutions, +) { + use serde_json::Value::*; + match (actual, expected) { + // "{...}" is a wildcard + (act, String(exp)) if exp == "{...}" => { + *act = serde_json::json!("{...}"); + } + (String(act), String(exp)) => { + *act = substitutions.normalize(act, exp); + } + (Array(act), Array(exp)) => { + act.iter_mut() + .zip(exp) + .for_each(|(a, e)| normalize_value_matches(a, e, substitutions)); + } + (Object(act), Object(exp)) => { + act.iter_mut() + .zip(exp) + .filter(|(a, e)| a.0 == e.0) + .for_each(|(a, e)| normalize_value_matches(a.1, e.1, substitutions)); + } + (_, _) => {} + } +} + #[cfg(feature = "detect-encoding")] fn is_binary(data: &[u8]) -> bool { match content_inspector::inspect(data) { @@ -228,3 +396,317 @@ fn is_binary(_data: &[u8]) -> bool { false } + +#[cfg(test)] +mod test { + use super::*; + #[cfg(feature = "json")] + use serde_json::json; + + // Tests for checking to_bytes and render produce the same results + #[test] + fn text_to_bytes_render() { + let d = Data::text(String::from("test")); + let bytes = d.to_bytes(); + let bytes = String::from_utf8(bytes).unwrap(); + let rendered = d.render().unwrap(); + assert_eq!(bytes, rendered); + } + + #[test] + #[cfg(feature = "json")] + fn json_to_bytes_render() { + let d = Data::json(json!({"name": "John\\Doe\r\n"})); + let bytes = d.to_bytes(); + let bytes = String::from_utf8(bytes).unwrap(); + let rendered = d.render().unwrap(); + assert_eq!(bytes, rendered); + } + + // Tests for checking all types are coercible to each other and + // for when the coercion should fail + #[test] + fn binary_to_text() { + let binary = String::from("test").into_bytes(); + let d = Data::binary(binary); + let text = d.try_coerce(DataFormat::Text); + assert_eq!(DataFormat::Text, text.format()) + } + + #[test] + fn binary_to_text_not_utf8() { + let binary = b"\xFF\xE0\x00\x10\x4A\x46\x49\x46\x00".to_vec(); + let d = Data::binary(binary); + let d = d.try_coerce(DataFormat::Text); + assert_ne!(DataFormat::Text, d.format()); + assert_eq!(DataFormat::Binary, d.format()); + } + + #[test] + #[cfg(feature = "json")] + fn binary_to_json() { + let value = json!({"name": "John\\Doe\r\n"}); + let binary = serde_json::to_vec_pretty(&value).unwrap(); + let d = Data::binary(binary); + let json = d.try_coerce(DataFormat::Json); + assert_eq!(DataFormat::Json, json.format()); + } + + #[test] + #[cfg(feature = "json")] + fn binary_to_json_not_utf8() { + let binary = b"\xFF\xE0\x00\x10\x4A\x46\x49\x46\x00".to_vec(); + let d = Data::binary(binary); + let d = d.try_coerce(DataFormat::Json); + assert_ne!(DataFormat::Json, d.format()); + assert_eq!(DataFormat::Binary, d.format()); + } + + #[test] + #[cfg(feature = "json")] + fn binary_to_json_not_json() { + let binary = String::from("test").into_bytes(); + let d = Data::binary(binary); + let d = d.try_coerce(DataFormat::Json); + assert_ne!(DataFormat::Json, d.format()); + assert_eq!(DataFormat::Binary, d.format()); + } + + #[test] + fn text_to_binary() { + let text = String::from("test"); + let d = Data::text(text); + let binary = d.try_coerce(DataFormat::Binary); + assert_eq!(DataFormat::Binary, binary.format()); + } + + #[test] + #[cfg(feature = "json")] + fn text_to_json() { + let value = json!({"name": "John\\Doe\r\n"}); + let text = serde_json::to_string_pretty(&value).unwrap(); + let d = Data::text(text); + let json = d.try_coerce(DataFormat::Json); + assert_eq!(DataFormat::Json, json.format()); + } + + #[test] + #[cfg(feature = "json")] + fn text_to_json_not_json() { + let text = String::from("test"); + let d = Data::text(text); + let json = d.try_coerce(DataFormat::Json); + assert_eq!(DataFormat::Text, json.format()); + } + + #[test] + #[cfg(feature = "json")] + fn json_to_binary() { + let value = json!({"name": "John\\Doe\r\n"}); + let d = Data::json(value); + let binary = d.try_coerce(DataFormat::Binary); + assert_eq!(DataFormat::Binary, binary.format()); + } + + #[test] + #[cfg(feature = "json")] + fn json_to_text() { + let value = json!({"name": "John\\Doe\r\n"}); + let d = Data::json(value); + let text = d.try_coerce(DataFormat::Text); + assert_eq!(DataFormat::Text, text.format()); + } + + // Tests for coercible conversions create the same output as to_bytes/render + // + // render does not need to be checked against bin -> text since render + // outputs None for binary + #[test] + fn text_to_bin_coerce_equals_to_bytes() { + let text = String::from("test"); + let d = Data::text(text); + let binary = d.clone().try_coerce(DataFormat::Binary); + assert_eq!(Data::binary(d.to_bytes()), binary); + } + + #[test] + #[cfg(feature = "json")] + fn json_to_bin_coerce_equals_to_bytes() { + let json = json!({"name": "John\\Doe\r\n"}); + let d = Data::json(json); + let binary = d.clone().try_coerce(DataFormat::Binary); + assert_eq!(Data::binary(d.to_bytes()), binary); + } + + #[test] + #[cfg(feature = "json")] + fn json_to_text_coerce_equals_render() { + let json = json!({"name": "John\\Doe\r\n"}); + let d = Data::json(json); + let text = d.clone().try_coerce(DataFormat::Text); + assert_eq!(Data::text(d.render().unwrap()), text); + } + + // Tests for normalization on json + #[test] + #[cfg(feature = "json")] + fn json_normalize_paths_and_lines() { + let json = json!({"name": "John\\Doe\r\n"}); + let data = Data::json(json); + let data = data.normalize(NormalizePaths); + assert_eq!(Data::json(json!({"name": "John/Doe\r\n"})), data); + let data = data.normalize(NormalizeNewlines); + assert_eq!(Data::json(json!({"name": "John/Doe\n"})), data); + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_obj_paths_and_lines() { + let json = json!({ + "person": { + "name": "John\\Doe\r\n", + "nickname": "Jo\\hn\r\n", + } + }); + let data = Data::json(json); + let data = data.normalize(NormalizePaths); + let assert = json!({ + "person": { + "name": "John/Doe\r\n", + "nickname": "Jo/hn\r\n", + } + }); + assert_eq!(Data::json(assert), data); + let data = data.normalize(NormalizeNewlines); + let assert = json!({ + "person": { + "name": "John/Doe\n", + "nickname": "Jo/hn\n", + } + }); + assert_eq!(Data::json(assert), data); + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_array_paths_and_lines() { + let json = json!({"people": ["John\\Doe\r\n", "Jo\\hn\r\n"]}); + let data = Data::json(json); + let data = data.normalize(NormalizePaths); + let paths = json!({"people": ["John/Doe\r\n", "Jo/hn\r\n"]}); + assert_eq!(Data::json(paths), data); + let data = data.normalize(NormalizeNewlines); + let new_lines = json!({"people": ["John/Doe\n", "Jo/hn\n"]}); + assert_eq!(Data::json(new_lines), data); + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_array_obj_paths_and_lines() { + let json = json!({ + "people": [ + { + "name": "John\\Doe\r\n", + "nickname": "Jo\\hn\r\n", + } + ] + }); + let data = Data::json(json); + let data = data.normalize(NormalizePaths); + let paths = json!({ + "people": [ + { + "name": "John/Doe\r\n", + "nickname": "Jo/hn\r\n", + } + ] + }); + assert_eq!(Data::json(paths), data); + let data = data.normalize(NormalizeNewlines); + let new_lines = json!({ + "people": [ + { + "name": "John/Doe\n", + "nickname": "Jo/hn\n", + } + ] + }); + assert_eq!(Data::json(new_lines), data); + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_matches_string() { + let exp = json!({"name": "{...}"}); + let expected = Data::json(exp); + let actual = json!({"name": "JohnDoe"}); + let actual = Data::json(actual).normalize(NormalizeMatches { + substitutions: &Default::default(), + pattern: &expected, + }); + if let (DataInner::Json(exp), DataInner::Json(act)) = (expected.inner, actual.inner) { + assert_eq!(exp, act); + } + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_matches_array() { + let exp = json!({"people": "{...}"}); + let expected = Data::json(exp); + let actual = json!({ + "people": [ + { + "name": "JohnDoe", + "nickname": "John", + } + ] + }); + let actual = Data::json(actual).normalize(NormalizeMatches { + substitutions: &Default::default(), + pattern: &expected, + }); + if let (DataInner::Json(exp), DataInner::Json(act)) = (expected.inner, actual.inner) { + assert_eq!(exp, act); + } + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_matches_obj() { + let exp = json!({"people": "{...}"}); + let expected = Data::json(exp); + let actual = json!({ + "people": { + "name": "JohnDoe", + "nickname": "John", + } + }); + let actual = Data::json(actual).normalize(NormalizeMatches { + substitutions: &Default::default(), + pattern: &expected, + }); + if let (DataInner::Json(exp), DataInner::Json(act)) = (expected.inner, actual.inner) { + assert_eq!(exp, act); + } + } + + #[test] + #[cfg(feature = "json")] + fn json_normalize_matches_diff_order_array() { + let exp = json!({ + "people": ["John", "Jane"] + }); + let expected = Data::json(exp); + let actual = json!({ + "people": ["Jane", "John"] + }); + let actual = Data::json(actual).normalize(NormalizeMatches { + substitutions: &Default::default(), + pattern: &expected, + }); + if let (DataInner::Json(exp), DataInner::Json(act)) = (expected.inner, actual.inner) { + assert_ne!(exp, act); + } + } +} diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/harness.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/harness.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/harness.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/harness.rs 2023-02-17 23:07:30.000000000 +0000 @@ -32,9 +32,11 @@ //! } //! ``` -use crate::data::DataFormat; +use crate::data::{DataFormat, NormalizeNewlines}; use crate::Action; +use libtest_mimic::Trial; + pub struct Harness { root: std::path::PathBuf, overrides: Option, @@ -48,7 +50,7 @@ I: std::fmt::Display, E: std::fmt::Display, S: Fn(std::path::PathBuf) -> Case + Send + Sync + 'static, - T: Fn(&std::path::Path) -> Result + Send + Sync + 'static, + T: Fn(&std::path::Path) -> Result + Send + Sync + 'static + Clone, { pub fn new(root: impl Into, setup: S, test: T) -> Self { Self { @@ -107,33 +109,23 @@ .into_iter() .map(|path| { let case = (self.setup)(path); - Test { - name: case.name.clone(), - kind: "".into(), - is_ignored: false, - is_bench: false, - data: case, - } - }) - .collect(); - - let args = libtest_mimic::Arguments::from_args(); - libtest_mimic::run_tests(&args, tests, move |test| { - match (self.test)(&test.data.fixture) { - Ok(actual) => { + let test = self.test.clone(); + Trial::test(case.name.clone(), move || { + let actual = (test)(&case.fixture)?; let actual = actual.to_string(); - let actual = crate::Data::text(actual).map_text(crate::utils::normalize_lines); + let actual = crate::Data::text(actual).normalize(NormalizeNewlines); let verify = Verifier::new() .palette(crate::report::Palette::auto()) .action(self.action); - verify.verify(&test.data.expected, actual) - } - Err(err) => libtest_mimic::Outcome::Failed { - msg: Some(err.to_string()), - }, - } - }) - .exit() + verify.verify(&case.expected, actual)?; + Ok(()) + }) + .with_ignored_flag(self.action == Action::Ignore) + }) + .collect(); + + let args = libtest_mimic::Arguments::from_args(); + libtest_mimic::run(&args, tests).exit() } } @@ -157,32 +149,15 @@ self } - fn verify( - &self, - expected_path: &std::path::Path, - actual: crate::Data, - ) -> libtest_mimic::Outcome { + fn verify(&self, expected_path: &std::path::Path, actual: crate::Data) -> crate::Result<()> { match self.action { - Action::Skip => libtest_mimic::Outcome::Ignored, + Action::Skip => Ok(()), Action::Ignore => { - let _ = self.do_verify(expected_path, actual); - libtest_mimic::Outcome::Ignored + let _ = self.try_verify(expected_path, actual); + Ok(()) } - Action::Verify => self.do_verify(expected_path, actual), - Action::Overwrite => self.do_overwrite(expected_path, actual), - } - } - - fn do_overwrite( - &self, - expected_path: &std::path::Path, - actual: crate::Data, - ) -> libtest_mimic::Outcome { - match self.try_overwrite(expected_path, actual) { - Ok(()) => libtest_mimic::Outcome::Passed, - Err(err) => libtest_mimic::Outcome::Failed { - msg: Some(err.to_string()), - }, + Action::Verify => self.try_verify(expected_path, actual), + Action::Overwrite => self.try_overwrite(expected_path, actual), } } @@ -195,26 +170,13 @@ Ok(()) } - fn do_verify( - &self, - expected_path: &std::path::Path, - actual: crate::Data, - ) -> libtest_mimic::Outcome { - match self.try_verify(expected_path, actual) { - Ok(()) => libtest_mimic::Outcome::Passed, - Err(err) => libtest_mimic::Outcome::Failed { - msg: Some(err.to_string()), - }, - } - } - fn try_verify( &self, expected_path: &std::path::Path, actual: crate::Data, ) -> crate::Result<()> { let expected = crate::Data::read_from(expected_path, Some(DataFormat::Text))? - .map_text(crate::utils::normalize_lines); + .normalize(NormalizeNewlines); if expected != actual { let mut buf = String::new(); @@ -248,5 +210,3 @@ pub fixture: std::path::PathBuf, pub expected: std::path::PathBuf, } - -type Test = libtest_mimic::Test; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -114,6 +114,7 @@ pub use assert::Assert; pub use data::Data; pub use data::DataFormat; +pub use data::{Normalize, NormalizeMatches, NormalizeNewlines, NormalizePaths}; pub use error::Error; pub use snapbox_macros::debug; pub use substitutions::Substitutions; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/path.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/path.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/path.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/path.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,5 +1,7 @@ //! Initialize working directories and assert on how they've changed +#[cfg(feature = "path")] +use crate::data::{NormalizeMatches, NormalizeNewlines, NormalizePaths}; /// Working directory for tests #[derive(Debug)] pub struct PathFixture(PathFixtureInner); @@ -179,12 +181,12 @@ crate::Data::read_from(&actual_path, None).map_err(Self::Failure)?; let expected = crate::Data::read_from(&expected_path, None) - .map(|d| d.map_text(crate::utils::normalize_lines)) + .map(|d| d.normalize(NormalizeNewlines)) .map_err(Self::Failure)?; actual = actual .try_coerce(expected.format()) - .map_text(crate::utils::normalize_lines); + .normalize(NormalizeNewlines); if expected != actual { return Err(Self::ContentMismatch { @@ -257,15 +259,14 @@ crate::Data::read_from(&actual_path, None).map_err(Self::Failure)?; let expected = crate::Data::read_from(&expected_path, None) - .map(|d| d.map_text(crate::utils::normalize_lines)) + .map(|d| d.normalize(NormalizeNewlines)) .map_err(Self::Failure)?; - if let (Some(expected), format) = (expected.as_str(), expected.format()) { - actual = actual - .try_coerce(format) - .map_text(crate::utils::normalize_text) - .map_text(|t| substitutions.normalize(t, expected)); - } + actual = actual + .try_coerce(expected.format()) + .normalize(NormalizePaths) + .normalize(NormalizeNewlines) + .normalize(NormalizeMatches::new(substitutions, &expected)); if expected != actual { return Err(Self::ContentMismatch { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/report/diff.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/report/diff.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/snapbox/src/report/diff.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/snapbox/src/report/diff.rs 2023-02-17 23:07:30.000000000 +0000 @@ -9,11 +9,11 @@ #[allow(unused_mut)] let mut rendered = false; #[cfg(feature = "diff")] - if let (Some(expected), Some(actual)) = (expected.as_str(), actual.as_str()) { + if let (Some(expected), Some(actual)) = (expected.render(), actual.render()) { write_diff_inner( writer, - expected, - actual, + &expected, + &actual, expected_name, actual_name, palette, diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/benches/thread_local.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/benches/thread_local.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/benches/thread_local.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/benches/thread_local.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,6 +1,3 @@ -//extern crate criterion; -extern crate thread_local; - //use criterion::{black_box, BatchSize}; use thread_local::ThreadLocal; @@ -24,5 +21,5 @@ }, BatchSize::SmallInput, ) - });*/ + }); } diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"} \ No newline at end of file +{"files":{},"package":"3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -10,28 +10,29 @@ # See Cargo.toml.orig for the original contents. [package] -edition = "2018" +edition = "2021" name = "thread_local" -version = "1.1.4" +version = "1.1.7" authors = ["Amanieu d'Antras "] description = "Per-object thread-local storage" documentation = "https://docs.rs/thread_local/" readme = "README.md" -keywords = ["thread_local", "concurrent", "thread"] -license = "Apache-2.0/MIT" +keywords = [ + "thread_local", + "concurrent", + "thread", +] +license = "MIT OR Apache-2.0" repository = "https://github.com/Amanieu/thread_local-rs" -#[[bench]] -#name = "thread_local" -#harness = false -#required-features = ["criterion"] -#[dependencies.criterion] -#version = "0.3.3" -#optional = true +[dependencies.cfg-if] +version = "1.0.0" [dependencies.once_cell] version = "1.5.2" -[dev-dependencies] +[features] +nightly = [] + [badges.travis-ci] repository = "Amanieu/thread_local-rs" diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/debian/patches/disable-criteron.diff cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/debian/patches/disable-criteron.diff --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/debian/patches/disable-criteron.diff 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/debian/patches/disable-criteron.diff 2023-02-17 23:07:30.000000000 +0000 @@ -2,36 +2,31 @@ =================================================================== --- thread-local.orig/Cargo.toml +++ thread-local/Cargo.toml -@@ -22,13 +22,13 @@ keywords = ["thread_local", "concurrent" - license = "Apache-2.0/MIT" +@@ -25,19 +25,12 @@ keywords = [ + license = "MIT OR Apache-2.0" repository = "https://github.com/Amanieu/thread_local-rs" -[[bench]] -name = "thread_local" -harness = false --required-features = ["criterion"] --[dependencies.criterion] --version = "0.3.3" --optional = true -+#[[bench]] -+#name = "thread_local" -+#harness = false -+#required-features = ["criterion"] -+#[dependencies.criterion] -+#version = "0.3.3" -+#optional = true +- + [dependencies.cfg-if] + version = "1.0.0" [dependencies.once_cell] version = "1.5.2" + +-[dev-dependencies.criterion] +-version = "0.4.0" +- + [features] + nightly = [] + Index: thread-local/benches/thread_local.rs =================================================================== --- thread-local.orig/benches/thread_local.rs +++ thread-local/benches/thread_local.rs -@@ -1,12 +1,12 @@ --extern crate criterion; -+//extern crate criterion; - extern crate thread_local; - +@@ -1,8 +1,8 @@ -use criterion::{black_box, BatchSize}; +//use criterion::{black_box, BatchSize}; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/README.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/README.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/README.md 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/README.md 2023-02-17 23:07:30.000000000 +0000 @@ -21,7 +21,7 @@ ## Minimum Rust version -This crate's minimum supported Rust version (MSRV) is 1.36.0. +This crate's minimum supported Rust version (MSRV) is 1.59.0. ## License diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -65,6 +65,7 @@ #![warn(missing_docs)] #![allow(clippy::mutex_atomic)] +#![cfg_attr(feature = "nightly", feature(thread_local))] mod cached; mod thread_id; @@ -81,7 +82,6 @@ use std::panic::UnwindSafe; use std::ptr; use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicUsize, Ordering}; -use std::sync::Mutex; use thread_id::Thread; use unreachable::UncheckedResultExt; @@ -107,11 +107,6 @@ /// The number of values in the thread local. This can be less than the real number of values, /// but is never more. values: AtomicUsize, - - /// Lock used to guard against concurrent modifications. This is taken when - /// there is a possibility of allocating a new bucket, which only occurs - /// when inserting values. - lock: Mutex<()>, } struct Entry { @@ -155,7 +150,7 @@ continue; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(bucket_ptr, this_bucket_size)) }; + unsafe { deallocate_bucket(bucket_ptr, this_bucket_size) }; } } } @@ -190,14 +185,12 @@ // representation as a sequence of their inner type. buckets: unsafe { mem::transmute(buckets) }, values: AtomicUsize::new(0), - lock: Mutex::new(()), } } /// Returns the element for the current thread, if it exists. pub fn get(&self) -> Option<&T> { - let thread = thread_id::get(); - self.get_inner(thread) + self.get_inner(thread_id::get()) } /// Returns the element for the current thread, or creates it if it doesn't @@ -220,10 +213,11 @@ F: FnOnce() -> Result, { let thread = thread_id::get(); - match self.get_inner(thread) { - Some(x) => Ok(x), - None => Ok(self.insert(thread, create()?)), + if let Some(val) = self.get_inner(thread) { + return Ok(val); } + + Ok(self.insert(create()?)) } fn get_inner(&self, thread: Thread) -> Option<&T> { @@ -244,24 +238,34 @@ } #[cold] - fn insert(&self, thread: Thread, data: T) -> &T { - // Lock the Mutex to ensure only a single thread is allocating buckets at once - let _guard = self.lock.lock().unwrap(); - + fn insert(&self, data: T) -> &T { + let thread = thread_id::get(); let bucket_atomic_ptr = unsafe { self.buckets.get_unchecked(thread.bucket) }; - let bucket_ptr: *const _ = bucket_atomic_ptr.load(Ordering::Acquire); + + // If the bucket doesn't already exist, we need to allocate it let bucket_ptr = if bucket_ptr.is_null() { - // Allocate a new bucket - let bucket_ptr = allocate_bucket(thread.bucket_size); - bucket_atomic_ptr.store(bucket_ptr, Ordering::Release); - bucket_ptr + let new_bucket = allocate_bucket(thread.bucket_size); + + match bucket_atomic_ptr.compare_exchange( + ptr::null_mut(), + new_bucket, + Ordering::AcqRel, + Ordering::Acquire, + ) { + Ok(_) => new_bucket, + // If the bucket value changed (from null), that means + // another thread stored a new bucket before we could, + // and we can free our bucket and use that one instead + Err(bucket_ptr) => { + unsafe { deallocate_bucket(new_bucket, thread.bucket_size) } + bucket_ptr + } + } } else { bucket_ptr }; - drop(_guard); - // Insert the new element into the bucket let entry = unsafe { &*bucket_ptr.add(thread.index) }; let value_ptr = entry.value.get(); @@ -525,6 +529,10 @@ ) as *mut _ } +unsafe fn deallocate_bucket(bucket: *mut Entry, size: usize) { + let _ = Box::from_raw(std::slice::from_raw_parts_mut(bucket, size)); +} + #[cfg(test)] mod tests { use super::ThreadLocal; diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/src/thread_id.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/src/thread_id.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/thread_local/src/thread_id.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/thread_local/src/thread_id.rs 2023-02-17 23:07:30.000000000 +0000 @@ -7,6 +7,7 @@ use crate::POINTER_WIDTH; use once_cell::sync::Lazy; +use std::cell::Cell; use std::cmp::Reverse; use std::collections::BinaryHeap; use std::sync::Mutex; @@ -73,24 +74,103 @@ } } -/// Wrapper around `Thread` that allocates and deallocates the ID. -struct ThreadHolder(Thread); -impl ThreadHolder { - fn new() -> ThreadHolder { - ThreadHolder(Thread::new(THREAD_ID_MANAGER.lock().unwrap().alloc())) - } -} -impl Drop for ThreadHolder { - fn drop(&mut self) { - THREAD_ID_MANAGER.lock().unwrap().free(self.0.id); - } -} +cfg_if::cfg_if! { + if #[cfg(feature = "nightly")] { + // This is split into 2 thread-local variables so that we can check whether the + // thread is initialized without having to register a thread-local destructor. + // + // This makes the fast path smaller. + #[thread_local] + static mut THREAD: Option = None; + thread_local! { static THREAD_GUARD: ThreadGuard = const { ThreadGuard { id: Cell::new(0) } }; } + + // Guard to ensure the thread ID is released on thread exit. + struct ThreadGuard { + // We keep a copy of the thread ID in the ThreadGuard: we can't + // reliably access THREAD in our Drop impl due to the unpredictable + // order of TLS destructors. + id: Cell, + } -thread_local!(static THREAD_HOLDER: ThreadHolder = ThreadHolder::new()); + impl Drop for ThreadGuard { + fn drop(&mut self) { + // Release the thread ID. Any further accesses to the thread ID + // will go through get_slow which will either panic or + // initialize a new ThreadGuard. + unsafe { + THREAD = None; + } + THREAD_ID_MANAGER.lock().unwrap().free(self.id.get()); + } + } + + /// Returns a thread ID for the current thread, allocating one if needed. + #[inline] + pub(crate) fn get() -> Thread { + if let Some(thread) = unsafe { THREAD } { + thread + } else { + get_slow() + } + } -/// Get the current thread. -pub(crate) fn get() -> Thread { - THREAD_HOLDER.with(|holder| holder.0) + /// Out-of-line slow path for allocating a thread ID. + #[cold] + fn get_slow() -> Thread { + let new = Thread::new(THREAD_ID_MANAGER.lock().unwrap().alloc()); + unsafe { + THREAD = Some(new); + } + THREAD_GUARD.with(|guard| guard.id.set(new.id)); + new + } + } else { + // This is split into 2 thread-local variables so that we can check whether the + // thread is initialized without having to register a thread-local destructor. + // + // This makes the fast path smaller. + thread_local! { static THREAD: Cell> = const { Cell::new(None) }; } + thread_local! { static THREAD_GUARD: ThreadGuard = const { ThreadGuard { id: Cell::new(0) } }; } + + // Guard to ensure the thread ID is released on thread exit. + struct ThreadGuard { + // We keep a copy of the thread ID in the ThreadGuard: we can't + // reliably access THREAD in our Drop impl due to the unpredictable + // order of TLS destructors. + id: Cell, + } + + impl Drop for ThreadGuard { + fn drop(&mut self) { + // Release the thread ID. Any further accesses to the thread ID + // will go through get_slow which will either panic or + // initialize a new ThreadGuard. + let _ = THREAD.try_with(|thread| thread.set(None)); + THREAD_ID_MANAGER.lock().unwrap().free(self.id.get()); + } + } + + /// Returns a thread ID for the current thread, allocating one if needed. + #[inline] + pub(crate) fn get() -> Thread { + THREAD.with(|thread| { + if let Some(thread) = thread.get() { + thread + } else { + get_slow(thread) + } + }) + } + + /// Out-of-line slow path for allocating a thread ID. + #[cold] + fn get_slow(thread: &Cell>) -> Thread { + let new = Thread::new(THREAD_ID_MANAGER.lock().unwrap().alloc()); + thread.set(Some(new)); + THREAD_GUARD.with(|guard| guard.id.set(new.id)); + new + } + } } #[test] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -75,7 +75,6 @@ harness = false required-features = [ "alloc", - "real_blackbox", ] [dependencies.arbitrary] @@ -106,7 +105,6 @@ experimental_write_impl = [] grab_spare_slice = [] nightly_slice_partition_dedup = [] -real_blackbox = ["criterion/real_blackbox"] rustc_1_40 = [] rustc_1_55 = ["rustc_1_40"] rustc_1_57 = ["rustc_1_55"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/disable-real-blackbox.patch cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/disable-real-blackbox.patch --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/disable-real-blackbox.patch 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/disable-real-blackbox.patch 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +Index: tinyvec/Cargo.toml +=================================================================== +--- tinyvec.orig/Cargo.toml ++++ tinyvec/Cargo.toml +@@ -75,7 +75,6 @@ name = "smallvec" + harness = false + required-features = [ + "alloc", +- "real_blackbox", + ] + + [dependencies.arbitrary] +@@ -106,7 +105,6 @@ default = [] + experimental_write_impl = [] + grab_spare_slice = [] + nightly_slice_partition_dedup = [] +-real_blackbox = ["criterion/real_blackbox"] + rustc_1_40 = [] + rustc_1_55 = ["rustc_1_40"] + rustc_1_57 = ["rustc_1_55"] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1 @@ +disable-real-blackbox.patch diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/.cargo-checksum.json cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/.cargo-checksum.json --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/.cargo-checksum.json 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/.cargo-checksum.json 2023-02-17 23:07:30.000000000 +0000 @@ -1 +1 @@ -{"files":{},"package":"cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"} \ No newline at end of file +{"files":{},"package":"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"} \ No newline at end of file diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/Cargo.toml cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/Cargo.toml --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/Cargo.toml 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/Cargo.toml 2023-02-17 23:07:30.000000000 +0000 @@ -3,20 +3,17 @@ # 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 +# to registry (e.g., crates.io) dependencies. # -# If you believe there's an error in this file please file an -# issue against the rust-lang/cargo repository. If you're -# editing this file be aware that the upstream Cargo.toml -# will likely look very different (and much more reasonable) +# 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" name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" authors = ["Soveu "] description = "Some macros for tiny containers" license = "MIT OR Apache-2.0 OR Zlib" repository = "https://github.com/Soveu/tinyvec_macros" - -[dependencies] diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Soveu - -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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-APACHE.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-APACHE.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-APACHE.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-APACHE.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,202 @@ + 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 2020 Tomasz "Soveu" Marx + + 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. + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-MIT.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-MIT.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-MIT.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-MIT.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Soveu + +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 -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-ZLIB.md cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-ZLIB.md --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-ZLIB.md 1970-01-01 00:00:00.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/LICENSE-ZLIB.md 2023-02-17 23:07:30.000000000 +0000 @@ -0,0 +1,20 @@ +zlib License + +(C) 2020 Tomasz "Soveu" Marx + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/src/lib.rs cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/src/lib.rs --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/tinyvec_macros/src/lib.rs 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/tinyvec_macros/src/lib.rs 2023-02-17 23:07:30.000000000 +0000 @@ -1,4 +1,5 @@ #![no_std] +#![forbid(unsafe_code)] #[macro_export] macro_rules! impl_mirrored { diff -Nru cargo-0.67.1+ds0ubuntu0.libgit2/vendor/toml_edit/debian/patches/series cargo-0.68.0+ds0ubuntu0.libgit2/vendor/toml_edit/debian/patches/series --- cargo-0.67.1+ds0ubuntu0.libgit2/vendor/toml_edit/debian/patches/series 2023-02-01 05:24:55.000000000 +0000 +++ cargo-0.68.0+ds0ubuntu0.libgit2/vendor/toml_edit/debian/patches/series 2023-02-17 23:07:30.000000000 +0000 @@ -1,3 +1,4 @@ drop-criterion.patch +#drop-pretty-assertions.patch drop-snapbox.patch drop-toml-test-harness.patch