What changed, and why it matters
This commit updates the Rust compiler toolchain from an unspecified earlier version to Rust 1.92 for the BitBox02 hardware wallet firmware. It also refreshes many vendored third-party Rust libraries (such as libc, hashbrown, getopts) and build tools (cbindgen, bindgen). The stated reason is compatibility with the new toolchain, including a breaking change around panic handling. There is no direct evidence in the commit that this fixes a known security vulnerability, but toolchain and dependency updates can affect security-relevant behavior such as memory safety, panic handling, and type definitions used in cryptographic code.
Treat this as a routine but security-relevant maintenance update. Verify that the firmware builds reproducibly with Rust 1.92, run the project's full test suite including hardware-in-the-loop tests if available, and review release notes for Rust 1.92 and the upgraded crates (especially libc and hashbrown) for any security advisories. Because this is a large dependency refresh on a hardware wallet, perform additional regression testing of cryptographic operations and secure-storage flows before release.
Security signals we found
Toolchain update to Rust 1.92, which may include upstream compiler/runtime security fixes
Vendored libc upgrade from 0.2.174 to 0.2.177, including type/constant corrections and new API bindings
Vendored hashbrown upgrade with likely/unlikely reimplementation using #[cold]
Vendored getopts upgrade making unicode-width optional
Build tool updates (cbindgen, bindgen-cli) that affect generated C/Rust bindings
Reference to a breaking change in abort_immediate_panic handling
Evidence from the diff
The diff is a large maintenance commit: it bumps the container version, updates Dockerfile-installed Rust tools (cbindgen 0.29.0→0.29.2, bindgen-cli 0.72.0→0.72.1), updates rust-toolchain.toml to 1.92, and refreshes vendored crates in external/vendor/ (getopts 0.2.23→0.2.24, hashbrown 0.15.4→0.15.5, libc 0.2.174→0.2.177, plus many others). The commit message notes a breaking change regarding abort_immediate_panic in CMakeLists.txt and a precise libc update to avoid duplicate dependencies. The libc update includes many platform-specific changes, new constants, and fixes to type definitions. No project-specific cryptographic or firmware code is modified in the visible diff.
Changed components
Docker build environmentRust toolchain configuration (rust-toolchain.toml)Vendored Rust dependencies in external/vendor/C/Rust binding generation via cbindgen and bindgen-cliCMakeLists.txt panic-handling configurationInspect captured patch +40740 / −36383
diff --git a/.containerversion b/.containerversion
index e373ee6..82cced2 100644
--- a/.containerversion
+++ b/.containerversion
@@ -1 +1 @@
-50
+51
diff --git a/Dockerfile b/Dockerfile
index 530b565..8ac9b19 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,17 +1,4 @@
-# Copyright 2019 Shift Cryptosecurity AG
-# Copyright 2020 Shift Crypto AG
-#
-# 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.
+# SPDX-License-Identifier: Apache-2.0
# If you are building for a foreign target and you get segfaults, try the latest version of qemu
# $ docker pull tonistiigi/binfmt:latest
@@ -148,8 +135,8 @@ RUN rustup target add thumbv7em-none-eabi
RUN rustup component add rustfmt
RUN rustup component add clippy
RUN rustup component add rust-src
-RUN CARGO_HOME=/opt/cargo cargo install cbindgen --version 0.29.0 --locked
-RUN CARGO_HOME=/opt/cargo cargo install bindgen-cli --version 0.72.0 --locked
+RUN CARGO_HOME=/opt/cargo cargo install cbindgen --version 0.29.2 --locked
+RUN CARGO_HOME=/opt/cargo cargo install bindgen-cli --version 0.72.1 --locked
# Until cargo vendor supports vendoring dependencies of the rust std libs we
# need a copy of this file next to the toml file. It also has to be world
diff --git a/external/vendor/getopts/.cargo-checksum.json b/external/vendor/getopts/.cargo-checksum.json
index 8d78aea..cbec1fa 100644
--- a/external/vendor/getopts/.cargo-checksum.json
+++ b/external/vendor/getopts/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{".cargo_vcs_info.json":"0d5846279da38304f12e79ced50c988ef4578326c26045753c1248c058a7767a",".github/workflows/main.yaml":"a73e5038724877f19b60a240e8a6abc269d522aca6621e008552735725435cd7",".github/workflows/publish.yaml":"b1a553c1bcddce79593567422d967cbf528ff30e5a70e411bb08e8c59bbcb452","CHANGELOG.md":"878bdeb4619b45b9589d8b7c955dac3bb27d7da3afd7c83b31521059311a88a9","Cargo.lock":"d39ce2834dcd3e925752aa75ec649c952f07d15fbfda33ff4c06f7f11aa30080","Cargo.toml":"7a831884be802f8b5e27a208a90ef810133e5c554d345c5405191ebbbd587f7e","Cargo.toml.orig":"fc8dbada5b4272d1a1f7187beda5f8597442405c64e848a4d9db9b6552df02a2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"29d3658afdb77671339563d483947e8ae1d6292648cb913868f86b86a2201642","src/lib.rs":"1ca4963f7793c0ba71dcca926330d214bfe216c5f3bcc9e1271d734eeb218641","src/tests/mod.rs":"35e67c0e474d6a7dd41363446f3b67af0716c71a5d8165eb7973a0cb129f5f7f","tests/smoke.rs":"26a95ac42e42b766ae752fe8531fb740fd147d5cdff352dec0763d175ce91806","triagebot.toml":"a135e10c777cd13459559bdf74fb704c1379af7c9b0f70bc49fa6f5a837daa81"},"package":"cba6ae63eb948698e300f645f87c70f76630d505f23b8907cf1e193ee85048c1"}
\ No newline at end of file
+{"files":{".cargo_vcs_info.json":"93db0145c8dc643f4ccbf2efdffe26435dc4b3886a6d6c70abdab053dfe1e141",".github/workflows/main.yaml":"020c589fac1607b498411fe10431ede8fe280d10a796602f3eab32a1d5f1f7d8",".github/workflows/publish.yaml":"b1a553c1bcddce79593567422d967cbf528ff30e5a70e411bb08e8c59bbcb452","CHANGELOG.md":"e9f336b5dcff576ed8ba48aed0c94c3a573756905cc93815ee08ba5b76ab5d38","Cargo.lock":"d53db1ee767b815f28463ae70ce0de3bce6e4e57f0f47bd1d01c9a89ada255c4","Cargo.toml":"819c8d7b776a6e79b08f87eef61cb1dd8b21bd6e65d56a312c5881abfd0df3dc","Cargo.toml.orig":"1915fa8aa7e1680e11fe5b239b22a456055c6d144fa88683442b123b1caaf11b","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"29d3658afdb77671339563d483947e8ae1d6292648cb913868f86b86a2201642","src/lib.rs":"0efe982ce0fbbecc555f5376388d932fe0e60deeb3c74b3174ec38802c27b8d6","src/tests/mod.rs":"97bf60d030e13d8813944b170424f8badc3554bded1560783ea4bb3f5335a684","tests/smoke.rs":"26a95ac42e42b766ae752fe8531fb740fd147d5cdff352dec0763d175ce91806","triagebot.toml":"a135e10c777cd13459559bdf74fb704c1379af7c9b0f70bc49fa6f5a837daa81"},"package":"cfe4fbac503b8d1f88e6676011885f34b7174f46e59956bba534ba83abded4df"}
\ No newline at end of file
diff --git a/external/vendor/getopts/.cargo_vcs_info.json b/external/vendor/getopts/.cargo_vcs_info.json
index 683439a..69b274d 100644
--- a/external/vendor/getopts/.cargo_vcs_info.json
+++ b/external/vendor/getopts/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
{
"git": {
- "sha1": "57b183a98599261ab535401b64aa0a46ab0b6a44"
+ "sha1": "40846923f0ce024bcf8d3e9100cab64a38c8dd08"
},
"path_in_vcs": ""
}
\ No newline at end of file
diff --git a/external/vendor/getopts/.github/workflows/main.yaml b/external/vendor/getopts/.github/workflows/main.yaml
index e212d2d..aa9221d 100644
--- a/external/vendor/getopts/.github/workflows/main.yaml
+++ b/external/vendor/getopts/.github/workflows/main.yaml
@@ -24,6 +24,7 @@ jobs:
with:
key: ${{ matrix.target }}
- run: cargo test
+ - run: cargo test --no-default-features
doc_fmt:
name: Document and check formatting
diff --git a/external/vendor/getopts/CHANGELOG.md b/external/vendor/getopts/CHANGELOG.md
index 9bcb3eb..ecc927d 100644
--- a/external/vendor/getopts/CHANGELOG.md
+++ b/external/vendor/getopts/CHANGELOG.md
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.2.24](https://github.com/rust-lang/getopts/compare/v0.2.23...v0.2.24) - 2025-08-29
+
+### Other
+
+- Make unicode-width an optional default dependency ([#133](https://github.com/rust-lang/getopts/pull/133))
+
## [0.2.23](https://github.com/rust-lang/getopts/compare/v0.2.22...v0.2.23) - 2025-06-09
### Other
diff --git a/external/vendor/getopts/Cargo.lock b/external/vendor/getopts/Cargo.lock
index 7b9de7f..e7d1524 100644
--- a/external/vendor/getopts/Cargo.lock
+++ b/external/vendor/getopts/Cargo.lock
@@ -2,15 +2,9 @@
# It is not intended for manual editing.
version = 3
-[[package]]
-name = "compiler_builtins"
-version = "0.1.160"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6376049cfa92c0aa8b9ac95fae22184b981c658208d4ed8a1dc553cd83612895"
-
[[package]]
name = "getopts"
-version = "0.2.23"
+version = "0.2.24"
dependencies = [
"log",
"rustc-std-workspace-core",
@@ -38,11 +32,6 @@ checksum = "aba676a20abe46e5b0f1b0deae474aaaf31407e6c71147159890574599da04ef"
[[package]]
name = "unicode-width"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
-dependencies = [
- "compiler_builtins",
- "rustc-std-workspace-core",
- "rustc-std-workspace-std",
-]
+checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
diff --git a/external/vendor/getopts/Cargo.toml b/external/vendor/getopts/Cargo.toml
index 3d3bf28..514d58e 100644
--- a/external/vendor/getopts/Cargo.toml
+++ b/external/vendor/getopts/Cargo.toml
@@ -13,7 +13,7 @@
edition = "2021"
rust-version = "1.66"
name = "getopts"
-version = "0.2.23"
+version = "0.2.24"
authors = ["The Rust Project Developers"]
build = false
autolib = false
@@ -28,11 +28,12 @@ license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/getopts"
[features]
+default = ["unicode"]
rustc-dep-of-std = [
- "unicode-width/rustc-dep-of-std",
"std",
"core",
]
+unicode = ["dep:unicode-width"]
[lib]
name = "getopts"
@@ -54,6 +55,7 @@ package = "rustc-std-workspace-std"
[dependencies.unicode-width]
version = "0.2.0"
+optional = true
[dev-dependencies.log]
version = "0.4"
diff --git a/external/vendor/getopts/Cargo.toml.orig b/external/vendor/getopts/Cargo.toml.orig
index 67c0e62..cf3c9aa 100644
--- a/external/vendor/getopts/Cargo.toml.orig
+++ b/external/vendor/getopts/Cargo.toml.orig
@@ -1,6 +1,6 @@
[package]
name = "getopts"
-version = "0.2.23"
+version = "0.2.24"
authors = ["The Rust Project Developers"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/getopts"
@@ -10,7 +10,7 @@ edition = "2021"
rust-version = "1.66"
[dependencies]
-unicode-width = "0.2.0"
+unicode-width = { version = "0.2.0", optional = true }
std = { version = "1.0", package = "rustc-std-workspace-std", optional = true }
core = { version = "1.0", package = "rustc-std-workspace-core", optional = true }
@@ -18,4 +18,6 @@ core = { version = "1.0", package = "rustc-std-workspace-core", optional = true
log = "0.4"
[features]
-rustc-dep-of-std = ["unicode-width/rustc-dep-of-std", "std", "core"]
+default = ["unicode"]
+rustc-dep-of-std = ["std", "core"]
+unicode = ["dep:unicode-width"]
diff --git a/external/vendor/getopts/src/lib.rs b/external/vendor/getopts/src/lib.rs
index 0c47ce6..f5c8e3c 100644
--- a/external/vendor/getopts/src/lib.rs
+++ b/external/vendor/getopts/src/lib.rs
@@ -104,7 +104,6 @@
#[cfg(test)]
#[macro_use]
extern crate log;
-extern crate unicode_width;
use self::Fail::*;
use self::HasArg::*;
@@ -119,8 +118,21 @@ use std::iter::{repeat, IntoIterator};
use std::result;
use std::str::FromStr;
+#[cfg(feature = "unicode")]
use unicode_width::UnicodeWidthStr;
+#[cfg(not(feature = "unicode"))]
+trait UnicodeWidthStr {
+ fn width(&self) -> usize;
+}
+
+#[cfg(not(feature = "unicode"))]
+impl UnicodeWidthStr for str {
+ fn width(&self) -> usize {
+ self.len()
+ }
+}
+
#[cfg(test)]
mod tests;
diff --git a/external/vendor/getopts/src/tests/mod.rs b/external/vendor/getopts/src/tests/mod.rs
index 4a04087..17e689c 100644
--- a/external/vendor/getopts/src/tests/mod.rs
+++ b/external/vendor/getopts/src/tests/mod.rs
@@ -50,9 +50,9 @@ fn test_reqopt() {
let short_args = vec!["-t".to_string(), "20".to_string()];
match opts.parse(&short_args) {
Ok(ref m) => {
- assert!((m.opt_present("test")));
+ assert!(m.opt_present("test"));
assert_eq!(m.opt_str("test").unwrap(), "20");
- assert!((m.opt_present("t")));
+ assert!(m.opt_present("t"));
assert_eq!(m.opt_str("t").unwrap(), "20");
}
_ => {
@@ -111,7 +111,7 @@ fn test_optopt() {
Ok(ref m) => {
assert!(m.opt_present("test"));
assert_eq!(m.opt_str("test").unwrap(), "20");
- assert!((m.opt_present("t")));
+ assert!(m.opt_present("t"));
assert_eq!(m.opt_str("t").unwrap(), "20");
}
_ => panic!(),
@@ -119,9 +119,9 @@ fn test_optopt() {
let short_args = vec!["-t".to_string(), "20".to_string()];
match opts.parse(&short_args) {
Ok(ref m) => {
- assert!((m.opt_present("test")));
+ assert!(m.opt_present("test"));
assert_eq!(m.opt_str("test").unwrap(), "20");
- assert!((m.opt_present("t")));
+ assert!(m.opt_present("t"));
assert_eq!(m.opt_str("t").unwrap(), "20");
}
_ => panic!(),
@@ -443,9 +443,9 @@ fn test_optmulti() {
opts.optmulti("t", "test", "testing", "TEST");
match opts.parse(&long_args) {
Ok(ref m) => {
- assert!((m.opt_present("test")));
+ assert!(m.opt_present("test"));
assert_eq!(m.opt_str("test").unwrap(), "20");
- assert!((m.opt_present("t")));
+ assert!(m.opt_present("t"));
assert_eq!(m.opt_str("t").unwrap(), "20");
}
_ => panic!(),
@@ -453,9 +453,9 @@ fn test_optmulti() {
let short_args = vec!["-t".to_string(), "20".to_string()];
match opts.parse(&short_args) {
Ok(ref m) => {
- assert!((m.opt_present("test")));
+ assert!(m.opt_present("test"));
assert_eq!(m.opt_str("test").unwrap(), "20");
- assert!((m.opt_present("t")));
+ assert!(m.opt_present("t"));
assert_eq!(m.opt_str("t").unwrap(), "20");
}
_ => panic!(),
@@ -576,16 +576,16 @@ fn test_combined() {
assert!(m.free[1] == "free1");
assert_eq!(m.opt_str("s").unwrap(), "20");
assert!(m.free[2] == "free2");
- assert!((m.opt_present("flag")));
+ assert!(m.opt_present("flag"));
assert_eq!(m.opt_str("long").unwrap(), "30");
- assert!((m.opt_present("f")));
+ assert!(m.opt_present("f"));
let pair = m.opt_strs("m");
assert!(pair[0] == "40");
assert!(pair[1] == "50");
let pair = m.opt_strs("n");
assert!(pair[0] == "-A B");
assert!(pair[1] == "-60 70");
- assert!((!m.opt_present("notpresent")));
+ assert!(!m.opt_present("notpresent"));
}
_ => panic!(),
}
@@ -888,6 +888,7 @@ Options:
}
#[test]
+#[cfg(feature = "unicode")]
fn test_usage_description_multibyte_handling() {
let mut opts = Options::new();
opts.optflag(
@@ -919,6 +920,7 @@ Options:
}
#[test]
+#[cfg(feature = "unicode")]
fn test_usage_description_newline_handling() {
let mut opts = Options::new();
opts.optflag(
@@ -950,6 +952,7 @@ Options:
}
#[test]
+#[cfg(feature = "unicode")]
fn test_usage_multiwidth() {
let mut opts = Options::new();
opts.optflag("a", "apple", "apple description");
diff --git a/external/vendor/hashbrown/.cargo-checksum.json b/external/vendor/hashbrown/.cargo-checksum.json
index 51b1d6a..88908a4 100644
--- a/external/vendor/hashbrown/.cargo-checksum.json
+++ b/external/vendor/hashbrown/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{".cargo_vcs_info.json":"5e2d8229d798b9800334efe5398a7978a5b4ad80248b3c2cbc9eed8f87ee4ec6","CHANGELOG.md":"78db17c9224b1f6133a87bbb14a91619c8285a3c49cd34dff356a8be7449c3ef","Cargo.lock":"5334280f77cf889e2b4090ea44888d51e0ac7dc1f9aae87fce3526e0ed7d6f17","Cargo.toml":"80ac792fa0ecb536fab4f54298c1fa8c7441ca75f8cc1d7e0e543ec91b10942e","Cargo.toml.orig":"4cae1cafa2f90c62741321eb48358582d602916250a88f6a02bd5985892d667e","Cross.toml":"47aeebdfd782a5052346ce29bf750c225828e108aca723486c3839adba5d6901","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2","README.md":"34a16e7bc599e9d4ec600b477176a4a1328e6fb1f3f8d1525fb54f398553daef","benches/bench.rs":"c323748bcf76d54cdaa152ec79dd2581f9d6b2c950f93e799ba38a28800e1fc9","benches/insert_unique_unchecked.rs":"dfe644035cad6ff13b280e3d72c9df2569491ecddc84f7c2502daf940814a63e","benches/set_ops.rs":"936cd15055c25d42aabc6bde738e3135da541520b40633c4fba940eb73e06f4d","clippy.toml":"7535949f908c6d9aea4f9a9f3a7625552c93fc29e963d059d40f4def9d77ea7b","src/control/bitmask.rs":"53dcdac056620f02c475b618d33e69f34152ea559d86bd4545546144f017baa0","src/control/group/generic.rs":"939b2e35e6ea5430a606a054ffc8ea3e22b867d83f2afed15525cf59a617eb6e","src/control/group/lsx.rs":"8a8783e466dbf995106e4fa3202d15fe99b0ac0f485ee7c699c3ba3bf346d1dd","src/control/group/mod.rs":"03d5cacaf762fcb0c9878e9f56355c7c9d0935d688d01c5e0d12aa673e16795d","src/control/group/neon.rs":"bde7726d321bd036cb9001818f962784346b932087b9f655c85ab26667d55fbb","src/control/group/sse2.rs":"833da90ab3fd72d306d5b999de96a4b6b52aa1a16ee7273c89bd12c9ead3bc45","src/control/mod.rs":"83fede19e9c5a26fd2c7372e6cf92547d32ade4cd69fde8a0eaaeb1be6ddc2ba","src/control/tag.rs":"9c94ab42aad3918bd77ffafdeb253f7f773a8f98bf56e36b85ebdc7a11ef676b","src/external_trait_impls/mod.rs":"d69528827794524cfd9acbeacc1ac4f6131e3c7574311e6d919f818f65fbff07","src/external_trait_impls/rayon/helpers.rs":"ba105bf0853ebc45157f22116ad0f55d3bdab75e721d8e7a677c7b912d0c0c6d","src/external_trait_impls/rayon/map.rs":"e1e08653c6c3d2f0586638ab7baf082c06fdc5551b5852b0f9e73aa9484b4955","src/external_trait_impls/rayon/mod.rs":"126edc882501dddd25e442d9236508b5b386eb8c0a9f5d654f2dd081086c1616","src/external_trait_impls/rayon/raw.rs":"04012fb2e99648819b4bc0044107ed3cb94013e242b7865075c5bd9ebf1b6865","src/external_trait_impls/rayon/set.rs":"7539348ff7bc6e3cce6b3c019d62dc401eea0138c578fef729c2593e8ead1cfa","src/external_trait_impls/rayon/table.rs":"aebd92261f44aef2e4c13a80a566e0308655396a3cc6f973d330d2f5ba26fc45","src/external_trait_impls/serde.rs":"f83dae5dd2243c0a1b278f9f040023e98c0e2744c78ad0243a7bb5d877a8e8ee","src/lib.rs":"a4ba7b15d4cfc524432877f3ad27e323d67f15706bb113052f77ff541718c0a6","src/macros.rs":"98a26b908fc0fbe6a58d008a317e550013d615eb3cc17a5054a573c62c1d74cb","src/map.rs":"072f998a2898e0847a333b1e94a95be1ca28766a8330d923e60073501a9036f2","src/raw/alloc.rs":"10474e218b922b0a32227578c09acd5b05c32ad223c4dbf0af3cbd7869c000f2","src/raw/mod.rs":"a88cd291be71cd2f6119a1f8b4030a0429b6b1f8771b7f2a8b140c1824788bed","src/raw_entry.rs":"41f54fabf968b6ba19a6fbb41372f7e86e1ccd221622591816fe48bcc3797369","src/rustc_entry.rs":"9c189a957af1ec5ff3549d15176c1608ca1c68330604a50b2ea19316a5dd14e2","src/scopeguard.rs":"1a246e08a63c06cd8ad934bd7da229421bf804f991ae93cd7e242da27ca6c601","src/set.rs":"cd7d05424d731f0ad5eb4cf255e9a4d970b96fb68398cc904481af942a106fb4","src/table.rs":"285620edfe390d0ea77983ae471943f145ea414caa81926010ef0de4647ef13e","src/util.rs":"8fa74d2e0da6199e693b1b2d68aba6d80bff60dd599d51bef2dcd8ea77b1ffff","tests/equivalent_trait.rs":"84faa3fe9d67c375d03fec81f0f1412c47862477d42e84e7d235258236338d5b","tests/hasher.rs":"fd06130f011660743202904221f3f7487d8d143d8903c73cd3a76d079ebbe9fb","tests/rayon.rs":"39cb24ab45fce8087bb54948715c8b6973ebfba1a325292b5b3cd9aab50b5fd2","tests/serde.rs":"6bac8054db722dd049901b37a6e006535bac30f425eb5cd91af19b5bc1dfe78e","tests/set.rs":"fd9ffc6f8a435f2fbcada826c33599d682d9f688f0f8dbb14fcd1e442d4c2647"},"package":"5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"}
\ No newline at end of file
+{"files":{".cargo_vcs_info.json":"69f3640939af23a14ac672aea0bb01e5c91ff62a2caff3fd29214bc57168d882","CHANGELOG.md":"ed7f31b98a975fee4392dc5de7bbedbabc00dcd5c3c60ade87a83b836401ba6f","Cargo.lock":"196f9d29807a2eba97e03e5816ce3579e2ee444d7a8787e2e4c93156e0e68792","Cargo.toml":"32bc47a47ae4759fd559ca2cbb43a597f679ff4ebcfa67c850794cc4cd52aea5","Cargo.toml.orig":"734e730bbb3eb5446b8c8ea6f2e904faecdb9603bcbbf7e5b503e0603367ce33","Cross.toml":"47aeebdfd782a5052346ce29bf750c225828e108aca723486c3839adba5d6901","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2","README.md":"34a16e7bc599e9d4ec600b477176a4a1328e6fb1f3f8d1525fb54f398553daef","benches/bench.rs":"c323748bcf76d54cdaa152ec79dd2581f9d6b2c950f93e799ba38a28800e1fc9","benches/insert_unique_unchecked.rs":"dfe644035cad6ff13b280e3d72c9df2569491ecddc84f7c2502daf940814a63e","benches/set_ops.rs":"936cd15055c25d42aabc6bde738e3135da541520b40633c4fba940eb73e06f4d","clippy.toml":"7535949f908c6d9aea4f9a9f3a7625552c93fc29e963d059d40f4def9d77ea7b","src/control/bitmask.rs":"53dcdac056620f02c475b618d33e69f34152ea559d86bd4545546144f017baa0","src/control/group/generic.rs":"939b2e35e6ea5430a606a054ffc8ea3e22b867d83f2afed15525cf59a617eb6e","src/control/group/lsx.rs":"8a8783e466dbf995106e4fa3202d15fe99b0ac0f485ee7c699c3ba3bf346d1dd","src/control/group/mod.rs":"03d5cacaf762fcb0c9878e9f56355c7c9d0935d688d01c5e0d12aa673e16795d","src/control/group/neon.rs":"bde7726d321bd036cb9001818f962784346b932087b9f655c85ab26667d55fbb","src/control/group/sse2.rs":"833da90ab3fd72d306d5b999de96a4b6b52aa1a16ee7273c89bd12c9ead3bc45","src/control/mod.rs":"83fede19e9c5a26fd2c7372e6cf92547d32ade4cd69fde8a0eaaeb1be6ddc2ba","src/control/tag.rs":"9c94ab42aad3918bd77ffafdeb253f7f773a8f98bf56e36b85ebdc7a11ef676b","src/external_trait_impls/mod.rs":"d69528827794524cfd9acbeacc1ac4f6131e3c7574311e6d919f818f65fbff07","src/external_trait_impls/rayon/helpers.rs":"ba105bf0853ebc45157f22116ad0f55d3bdab75e721d8e7a677c7b912d0c0c6d","src/external_trait_impls/rayon/map.rs":"e1e08653c6c3d2f0586638ab7baf082c06fdc5551b5852b0f9e73aa9484b4955","src/external_trait_impls/rayon/mod.rs":"126edc882501dddd25e442d9236508b5b386eb8c0a9f5d654f2dd081086c1616","src/external_trait_impls/rayon/raw.rs":"04012fb2e99648819b4bc0044107ed3cb94013e242b7865075c5bd9ebf1b6865","src/external_trait_impls/rayon/set.rs":"7539348ff7bc6e3cce6b3c019d62dc401eea0138c578fef729c2593e8ead1cfa","src/external_trait_impls/rayon/table.rs":"aebd92261f44aef2e4c13a80a566e0308655396a3cc6f973d330d2f5ba26fc45","src/external_trait_impls/serde.rs":"f83dae5dd2243c0a1b278f9f040023e98c0e2744c78ad0243a7bb5d877a8e8ee","src/lib.rs":"a4ba7b15d4cfc524432877f3ad27e323d67f15706bb113052f77ff541718c0a6","src/macros.rs":"98a26b908fc0fbe6a58d008a317e550013d615eb3cc17a5054a573c62c1d74cb","src/map.rs":"7ad82c1a141b824be1201ea0014623b2433d32080f528ef3958e65d04ddb7688","src/raw/alloc.rs":"10474e218b922b0a32227578c09acd5b05c32ad223c4dbf0af3cbd7869c000f2","src/raw/mod.rs":"a88cd291be71cd2f6119a1f8b4030a0429b6b1f8771b7f2a8b140c1824788bed","src/raw_entry.rs":"41f54fabf968b6ba19a6fbb41372f7e86e1ccd221622591816fe48bcc3797369","src/rustc_entry.rs":"9c189a957af1ec5ff3549d15176c1608ca1c68330604a50b2ea19316a5dd14e2","src/scopeguard.rs":"1a246e08a63c06cd8ad934bd7da229421bf804f991ae93cd7e242da27ca6c601","src/set.rs":"cd7d05424d731f0ad5eb4cf255e9a4d970b96fb68398cc904481af942a106fb4","src/table.rs":"285620edfe390d0ea77983ae471943f145ea414caa81926010ef0de4647ef13e","src/util.rs":"c929f855589653727016bd8577db7ca234e7e0820f1f2dc0cfe49f13f5056168","tests/equivalent_trait.rs":"84faa3fe9d67c375d03fec81f0f1412c47862477d42e84e7d235258236338d5b","tests/hasher.rs":"fd06130f011660743202904221f3f7487d8d143d8903c73cd3a76d079ebbe9fb","tests/rayon.rs":"39cb24ab45fce8087bb54948715c8b6973ebfba1a325292b5b3cd9aab50b5fd2","tests/serde.rs":"6bac8054db722dd049901b37a6e006535bac30f425eb5cd91af19b5bc1dfe78e","tests/set.rs":"fd9ffc6f8a435f2fbcada826c33599d682d9f688f0f8dbb14fcd1e442d4c2647"},"package":"9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"}
\ No newline at end of file
diff --git a/external/vendor/hashbrown/.cargo_vcs_info.json b/external/vendor/hashbrown/.cargo_vcs_info.json
index 601ff49..94e46c9 100644
--- a/external/vendor/hashbrown/.cargo_vcs_info.json
+++ b/external/vendor/hashbrown/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
{
"git": {
- "sha1": "8ceeb4045f8a23752d0091cf4c6c8976c9e291b3"
+ "sha1": "b751eef8e99ccf3652046ef4a9e1ec47c1bfb78d"
},
"path_in_vcs": ""
}
\ No newline at end of file
diff --git a/external/vendor/hashbrown/CHANGELOG.md b/external/vendor/hashbrown/CHANGELOG.md
index 98050ce..fd38a96 100644
--- a/external/vendor/hashbrown/CHANGELOG.md
+++ b/external/vendor/hashbrown/CHANGELOG.md
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.15.5](https://github.com/rust-lang/hashbrown/compare/v0.15.4...v0.15.5) - 2025-08-07
+
+### Added
+
+- Added `Entry::or_default_entry` and `Entry::or_insert_entry`.
+
+### Changed
+
+- Re-implemented likely/unlikely with `#[cold]`
+
## [0.15.4](https://github.com/rust-lang/hashbrown/compare/v0.15.3...v0.15.4) - 2025-06-05
### Changed
diff --git a/external/vendor/hashbrown/Cargo.lock b/external/vendor/hashbrown/Cargo.lock
index ba3e9b6..c573fcc 100644
--- a/external/vendor/hashbrown/Cargo.lock
+++ b/external/vendor/hashbrown/Cargo.lock
@@ -16,18 +16,18 @@ checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967"
[[package]]
name = "bumpalo"
-version = "3.18.1"
+version = "3.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
+checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
dependencies = [
"allocator-api2",
]
[[package]]
name = "cfg-if"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
[[package]]
name = "crossbeam-deque"
@@ -98,7 +98,7 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.15.4"
+version = "0.15.5"
dependencies = [
"allocator-api2",
"bumpalo",
@@ -123,9 +123,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.172"
+version = "0.2.174"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
+checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
[[package]]
name = "ppv-lite86"
@@ -156,15 +156,15 @@ dependencies = [
[[package]]
name = "r-efi"
-version = "5.2.0"
+version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
[[package]]
name = "rand"
-version = "0.9.1"
+version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97"
+checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
dependencies = [
"rand_chacha",
"rand_core",
@@ -252,9 +252,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.101"
+version = "2.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
+checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
dependencies = [
"proc-macro2",
"quote",
@@ -287,18 +287,18 @@ dependencies = [
[[package]]
name = "zerocopy"
-version = "0.8.25"
+version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
+checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.25"
+version = "0.8.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
+checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
dependencies = [
"proc-macro2",
"quote",
diff --git a/external/vendor/hashbrown/Cargo.toml b/external/vendor/hashbrown/Cargo.toml
index 976f9d5..cc4b1af 100644
--- a/external/vendor/hashbrown/Cargo.toml
+++ b/external/vendor/hashbrown/Cargo.toml
@@ -13,7 +13,7 @@
edition = "2021"
rust-version = "1.65.0"
name = "hashbrown"
-version = "0.15.4"
+version = "0.15.5"
authors = ["Amanieu d'Antras <amanieu@gmail.com>"]
build = false
exclude = [
diff --git a/external/vendor/hashbrown/Cargo.toml.orig b/external/vendor/hashbrown/Cargo.toml.orig
index 5c165cf..4d870fa 100644
--- a/external/vendor/hashbrown/Cargo.toml.orig
+++ b/external/vendor/hashbrown/Cargo.toml.orig
@@ -1,6 +1,6 @@
[package]
name = "hashbrown"
-version = "0.15.4"
+version = "0.15.5"
authors = ["Amanieu d'Antras <amanieu@gmail.com>"]
description = "A Rust port of Google's SwissTable hash map"
license = "MIT OR Apache-2.0"
diff --git a/external/vendor/hashbrown/src/map.rs b/external/vendor/hashbrown/src/map.rs
index 0cffb9d..9101394 100644
--- a/external/vendor/hashbrown/src/map.rs
+++ b/external/vendor/hashbrown/src/map.rs
@@ -3524,6 +3524,38 @@ impl<'a, K, V, S, A: Allocator> Entry<'a, K, V, S, A> {
}
}
+ /// Ensures a value is in the entry by inserting the default if empty,
+ /// and returns an [`OccupiedEntry`].
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use hashbrown::HashMap;
+ ///
+ /// let mut map: HashMap<&str, u32> = HashMap::new();
+ ///
+ /// // nonexistent key
+ /// let entry = map.entry("poneyland").or_insert_entry(3);
+ /// assert_eq!(entry.key(), &"poneyland");
+ /// assert_eq!(entry.get(), &3);
+ ///
+ /// // existing key
+ /// let mut entry = map.entry("poneyland").or_insert_entry(10);
+ /// assert_eq!(entry.key(), &"poneyland");
+ /// assert_eq!(entry.get(), &3);
+ /// ```
+ #[cfg_attr(feature = "inline-more", inline)]
+ pub fn or_insert_entry(self, default: V) -> OccupiedEntry<'a, K, V, S, A>
+ where
+ K: Hash,
+ S: BuildHasher,
+ {
+ match self {
+ Entry::Occupied(entry) => entry,
+ Entry::Vacant(entry) => entry.insert_entry(default),
+ }
+ }
+
/// Ensures a value is in the entry by inserting the result of the default function if empty,
/// and returns a mutable reference to the value in the entry.
///
@@ -4330,6 +4362,39 @@ impl<'a, 'b, K, Q: ?Sized, V: Default, S, A: Allocator> EntryRef<'a, 'b, K, Q, V
EntryRef::Vacant(entry) => entry.insert(Default::default()),
}
}
+
+ /// Ensures a value is in the entry by inserting the default value if empty,
+ /// and returns an [`OccupiedEntry`].
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use hashbrown::HashMap;
+ ///
+ /// let mut map: HashMap<String, Option<u32>> = HashMap::new();
+ ///
+ /// // nonexistent key
+ /// let entry = map.entry_ref("poneyland").or_default_entry();
+ /// assert_eq!(entry.key(), &"poneyland");
+ /// assert_eq!(entry.get(), &None);
+ ///
+ /// // existing key
+ /// map.insert("horseland".to_string(), Some(3));
+ /// let entry = map.entry_ref("horseland").or_default_entry();
+ /// assert_eq!(entry.key(), &"horseland");
+ /// assert_eq!(entry.get(), &Some(3));
+ /// ```
+ #[cfg_attr(feature = "inline-more", inline)]
+ pub fn or_default_entry(self) -> OccupiedEntry<'a, K, V, S, A>
+ where
+ K: Hash + From<&'b Q>,
+ S: BuildHasher,
+ {
+ match self {
+ EntryRef::Occupied(entry) => entry,
+ EntryRef::Vacant(entry) => entry.insert_entry(Default::default()),
+ }
+ }
}
impl<'a, 'b, K, Q: ?Sized, V, S, A: Allocator> VacantEntryRef<'a, 'b, K, Q, V, S, A> {
@@ -6164,7 +6229,7 @@ mod test_map {
}
for (k, v) in map {
- println!("{}, {}", k, v);
+ println!("{k}, {v}");
}
}
@@ -6269,8 +6334,7 @@ mod test_map {
for ((key, value), (panic_in_clone, panic_in_drop)) in guard.iter().zip(iter) {
if *key != check_count {
return Err(format!(
- "key != check_count,\nkey: `{}`,\ncheck_count: `{}`",
- key, check_count
+ "key != check_count,\nkey: `{key}`,\ncheck_count: `{check_count}`"
));
}
if value.dropped
@@ -6297,8 +6361,7 @@ mod test_map {
if count != check_count {
return Err(format!(
- "count != check_count,\ncount: `{}`,\ncheck_count: `{}`",
- count, check_count
+ "count != check_count,\ncount: `{count}`,\ncheck_count: `{check_count}`"
));
}
core::mem::forget(guard);
diff --git a/external/vendor/hashbrown/src/util.rs b/external/vendor/hashbrown/src/util.rs
index c8a8117..90a8df3 100644
--- a/external/vendor/hashbrown/src/util.rs
+++ b/external/vendor/hashbrown/src/util.rs
@@ -1,10 +1,34 @@
-// FIXME: Branch prediction hint. This is currently only available on nightly
-// but it consistently improves performance by 10-15%.
-#[cfg(not(feature = "nightly"))]
-pub(crate) use core::convert::{identity as likely, identity as unlikely};
+// FIXME: Replace with `core::hint::{likely, unlikely}` once they are stable.
#[cfg(feature = "nightly")]
pub(crate) use core::intrinsics::{likely, unlikely};
+#[cfg(not(feature = "nightly"))]
+#[inline(always)]
+#[cold]
+fn cold_path() {}
+
+#[cfg(not(feature = "nightly"))]
+#[inline(always)]
+pub(crate) fn likely(b: bool) -> bool {
+ if b {
+ true
+ } else {
+ cold_path();
+ false
+ }
+}
+
+#[cfg(not(feature = "nightly"))]
+#[inline(always)]
+pub(crate) fn unlikely(b: bool) -> bool {
+ if b {
+ cold_path();
+ true
+ } else {
+ false
+ }
+}
+
// FIXME: use strict provenance functions once they are stable.
// Implement it with a transmute for now.
#[inline(always)]
diff --git a/external/vendor/libc/.cargo-checksum.json b/external/vendor/libc/.cargo-checksum.json
index 985216f..0edc0b8 100644
--- a/external/vendor/libc/.cargo-checksum.json
+++ b/external/vendor/libc/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{".cargo_vcs_info.json":"9e3f383a0671ce544ba60129f113826026bfd39d6f9a2f7323198c88a462be44",".git-blame-ignore-revs":"761aa385c661241fa77c15b502c361398cf500bbb9f8c3a4579b412c4c6249d7",".release-plz.toml":"fcf2d382c4a2abd96caf9cc391b63e0c94d5832f5c48e9ab9eb4b2c847c0887c","CHANGELOG.md":"d4d202929497332d94acf48737a5cf4a2c5f53d25c93f6734df535b8b56bc30b","CONTRIBUTING.md":"155e7f4e96fafe9ee5c8adb5068be27a22de89a95ca9bfc7baf517b9850d20d6","Cargo.lock":"a3b7f6b5d63de50ad386146d4ab8126e4ce71b91f086861aaf3d7c2cd3a1426e","Cargo.toml":"08c008bd409b6862f7723b927d7cb50e83e093b336b306687f5b0356230cead2","Cargo.toml.orig":"647a491d157e1afbeea48f635be858ab1b1c9c2064c24d15a1e30808c6d7bd35","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"a198be444453fe0b24d4fb6a8b732eb9e6dc77ebcfd119fca95b97b45c77c77a","build.rs":"b3115efae7f0487ed04d36bfaa0d6449db6448356a9cbeb3e10821d79008720d","rustfmt.toml":"e9321ff995242e8cb0a4984254f0748ef11a89ca4618cab8f047ee59a88768e7","src/fuchsia/aarch64.rs":"9cd032304a54321a8926cf3157194c5d79a2491b1b974a05fe71729fa43b5738","src/fuchsia/mod.rs":"d783900ea7e696ed25bb2f04c8714b0afdff0877d46418a29025c61e535254cd","src/fuchsia/riscv64.rs":"f2aba92cb88480bd72a9eb7a41aafc63c5db293b93113fa973fe5ab1fd819e29","src/fuchsia/x86_64.rs":"a6de0a3c9a45e7af2f0bac96d73da6a7cfb8c003335183016b08a25e2acab65b","src/hermit.rs":"f150c2882a4d8e510259697ff7685899e74bfabf84e5d37103c54b4387093775","src/lib.rs":"4d32db18cf39bf8b36fa0688bf2a7d2c9b3bb4c9664a1583fc203f008f8045a2","src/macros.rs":"9697bfcb664007468f7e5a4bdb754ab554a5c12273d7576d2d78392f61d19e15","src/primitives.rs":"0096ec3f32454a630fd1e78fa5aaaa033f107c1394a0d7b8dfe92594339a547b","src/psp.rs":"6ab902bad5bd5c97a6e300b354820602703f1f802071a8b7a935c42444c587ca","src/sgx.rs":"964d6af358f5c85f948275090e5a7854e0169c43b5c338070b6a4cd156ebc9e6","src/solid/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/mod.rs":"a2045b6089af91bd533a666773d3b99fcfaf03da7a06869382969eed059b0e4c","src/switch.rs":"bfdcaf0268d79652ee52c1a2837959b8253e6a4124fd94dda82727ecc442a758","src/teeos/mod.rs":"2cca695904dacb13c063fb6463a6e0b2bb47ed86be0fdc9476938297441d7795","src/trusty.rs":"c5012aeefc4307c11374f062ad1d530e2ec556e7069e375de326a49c77f65e22","src/unix/aix/mod.rs":"abe29e873d9492f46bef8a7596469ad4698af087ab29619c059221b0f7c0fa91","src/unix/aix/powerpc64.rs":"6e1d1f50a58a8cb15f7a11cabfa8d7d2c0c5078d328d53c5fcf46bc706cf1a4d","src/unix/bsd/apple/b32/mod.rs":"76a5dce8b65aeb51626bb7316ab200015021dd87bddde86185cb424118c78528","src/unix/bsd/apple/b64/aarch64/mod.rs":"3ce904e72d78e6465ca52fd3905208fbb8cbc49a1695a708b12dff2ee01f4d36","src/unix/bsd/apple/b64/mod.rs":"75a313514fd3b9f21391ddb77f965386c36e99bbf4a4c952445e4e8d50bb16b5","src/unix/bsd/apple/b64/x86_64/mod.rs":"996ae7cd5a730ec595fde9a02add78f9417086204538abb80f6d24c80a0b649b","src/unix/bsd/apple/mod.rs":"109b57bb1db39a37c1ca90eeaadcc9637c4bf31d0df0bb53aab0778eb903750b","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"07b19390b9ae8f541ac35fd4e14685d639b95152d6d7a33814bb749b8b927298","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"c542f3f05e161fb77f50d718fa7e52ce9f2dcc9dcb3a615d8d604a0a520febfe","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"f796f19f04336225de81151897387ce5e975a67510f400cdcc8f0048d5d484bb","src/unix/bsd/freebsdlike/freebsd/arm.rs":"f3e3410bbca7c6aa591f06b7215645da4ccceab82b9c478277eeffdf9310f92a","src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs":"8d9bef35f3e490d04755a59a99ad054ef20498beff979ae8b14acbec1097318a","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"45f718f556a8368f282944d9a14afae7261827ec4838d26719290466efc4f023","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"b1ddf661a8a331184e6b1134307ea25454547472a21c05752200b07002110171","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"ed37853a6c281746424f7c2109122312faf2b81f862280918955a94906b79189","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"ac75d9267ab2f0c3432d4d173d417dd05306a8c63af6c050c67ed35a9c68dd6f","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"7cac2e91eb6afde7babbfd5dd593e038a1b711929c7d48110f3b430f921c478a","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs":"23f496d5e30ed99449efac7d2d28e6b72faee7ba6445a0ea92a0f9b44cc80fe1","src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/mod.rs":"90ef01d22cbb53af4f7fe88dae51fc04db01826d4dca4be5915c6a2c7a50c328","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"bfc3ac2f4e1d2136589181db2297c6f9d279fd160f00fe2c42bc0820978d7934","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"4843e5303d6c29756c5b62f2ceb4134e0d72a5f99c8a0b10892b3bb916e6dae3","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"94538d52efac5c8fea0c3ed30c1c9451820dd396f028b4159b908c1898987bc3","src/unix/bsd/freebsdlike/freebsd/x86.rs":"3a2c28e6cbfa27a4a663a85a2cd2bc3307613670f815c99650850629ab05150d","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"f0af70c5b623224b3348ae9832272cb4940a45124e55fd2d0b0202930e4cf244","src/unix/bsd/freebsdlike/mod.rs":"2e7188c40dcbf437da93184184108d1f840b82bb04457d8002bf1a49f7f9f81c","src/unix/bsd/mod.rs":"c7322c39fadbd78cc957ea51a7c6490d07a630a6ae07ca397bd1e611adc5095a","src/unix/bsd/netbsdlike/mod.rs":"345a3aca0dd0349c88ccb4b89857304e7523661f2dbf7761182123596d5e3eb9","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"bd36c92099db501350fb8617414d1fea89a6bb12867498e1821167813ab70a02","src/unix/bsd/netbsdlike/netbsd/arm.rs":"237beaefcb12e7be9ccd4fef6e3be7db79ee63d4fc714e5eaf6084d4826d6fa2","src/unix/bsd/netbsdlike/netbsd/mips.rs":"d1ff114b268358e5d35e7b83d85f414d16b81ef39eeb1802682ff4424b102bc7","src/unix/bsd/netbsdlike/netbsd/mod.rs":"851007845bd8743cea35ce91a850d28c6aa2a0d543ac6946476c1d13ed4a2684","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"94494f348f011c6135d301944696c5b5a09979f5892abee4c8fdee1056388b94","src/unix/bsd/netbsdlike/netbsd/riscv64.rs":"f3778a9bd2ba923220537d167cfb10b91580ffbf583100789a46d2807f7a1e3e","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"d50816e830225779ac9e9a55a7e3e097882153d72987061d76a96ee736c8af9c","src/unix/bsd/netbsdlike/netbsd/x86.rs":"307a9aba68071b0589e459269ef10845c302599b0fd2b0ee7b5c480177904e89","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"4ced76b3640d465f6dead8beb5e947b3ce8297884260fb943d5f417d985dbafc","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"8be46bc5151ec1081feaf7685c18507f766f2501a2b5d35107db3babb896395a","src/unix/bsd/netbsdlike/openbsd/arm.rs":"f81c71e1cfe436b8f32cfe064991019cce0c83627f0d9c3a30d68691d71c7449","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"bee7664d88f8451ae22552fc0721b6b6a6dee2493cc42bcb9829c1e47e4b05f5","src/unix/bsd/netbsdlike/openbsd/mod.rs":"b3b6c85aa7dba31aa80c4668b2758a03feb43ea18f7a6f2dec183e00986e3709","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"f81c71e1cfe436b8f32cfe064991019cce0c83627f0d9c3a30d68691d71c7449","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"9bd3813fe2fd7ca66ee8d70d13887b4595fb8c9e819691a657ddf108ed9cafbf","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"7fb322e9f5425456dd53eb07de9fc84097ef35295802e8f50a7fb3c7e1f89ac6","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"8d4c5a4cae63e09e1c156164ddc82e0fc77926841d4d4e419dd2e7a7b7145f58","src/unix/bsd/netbsdlike/openbsd/x86.rs":"26c1b7e7f7799c5e434126c6c0ddd45f40939cae4151f8ce0a7a1836f83ac56a","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"caaf5a547299500d8a7b0a17214215916a53819e19cbc6ac392bef30f5982906","src/unix/cygwin/mod.rs":"70a44e600a59a2003088ac517076183068b5ec84159f43c1bf05ba880aa1cfe4","src/unix/haiku/b32.rs":"c3f8678ceee65a3094d8133b0d1a94470860e0b1867977f0569c52c5a20e039f","src/unix/haiku/b64.rs":"f97ce9225f4710893dab03ab3e13bc62152cc84f90c597ec88f6dc1f4c27d242","src/unix/haiku/mod.rs":"211b4b9239a3f73f94c94ac30c96f01838d776f2df4e42e887e167b06c45446f","src/unix/haiku/native.rs":"4f52d13ba164c6c4d138de445541d2358ca5c4f69898efd6c15c506c2f341a6f","src/unix/haiku/x86_64.rs":"09f2384474b2fcb7d0febb0e9e802610a627cadca29dc0e60eb4cfe15552f978","src/unix/hurd/b32.rs":"501f426f7aeb60acf4119064100dd94bbdfebff2cec785428708059d853dc123","src/unix/hurd/b64.rs":"b9b2082e721a5ec89ba55fd5a16bbffcc8a05ca7cef6dbfbd78aff0806cb931f","src/unix/hurd/mod.rs":"e3dbad685a3d29dae510b438d29f692f6a8fdf37a422924915a36a3e854b1219","src/unix/linux_like/android/b32/arm.rs":"e68f6a15870a22e0383770ed1a5bd443d4c2ed237d16fea338c5da1ab9bf1fe3","src/unix/linux_like/android/b32/mod.rs":"5b10ebe56435d868846ae720bb9081cf814486722b5c13520fd4ef50a7ecfb58","src/unix/linux_like/android/b32/x86/mod.rs":"d21913dab5d6b482106087297fbb643fd7cd3f83c01d56c1a1f8203dc57d8c16","src/unix/linux_like/android/b64/aarch64/mod.rs":"5ae558c8af8187155fa0ae8b8776459a60c08ce152f25d137f845d8371673b7e","src/unix/linux_like/android/b64/mod.rs":"ddc2932b78be316904019cd6209baccb1ce0732ad4332fecd99a7db0b5bf963a","src/unix/linux_like/android/b64/riscv64/mod.rs":"d826b0e4f078b8ea228f2244659fc700b95aa8a7ba87caef0bc34f54c9defd2c","src/unix/linux_like/android/b64/x86_64/mod.rs":"7449054f5815b6d9f734867d97d60a4eff13c809fbf32272a40826137bd6469c","src/unix/linux_like/android/mod.rs":"983d08c419c3489bf83c283d2cd0c1f6312c8d0ff8bbc31b8c40259bbf3e1772","src/unix/linux_like/emscripten/lfs64.rs":"3a1d1779bcf16525a578a68237f9854090eae4c9819e18ffb5a288f39be4afbe","src/unix/linux_like/emscripten/mod.rs":"5baf8617a99b77897c1f226adf4e96a9582f356e3dd389a39fc4f1a75f052046","src/unix/linux_like/linux/arch/generic/mod.rs":"c8f4d88ba7ffe044c47fc84ca1e21751bfd2446806ccabbe8729958cbb5d1ccc","src/unix/linux_like/linux/arch/mips/mod.rs":"058ebf07f8b10358af9a7f66bd96ba14df1cc6a942203da9abe8d1abab00fcbb","src/unix/linux_like/linux/arch/mod.rs":"8bc5898b03760a95dd4f124ac76ad92e5ae36b2d0644203d752ef2b37e487c3a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"0e20b7e63fe39a200cb4813eeb934bc25d91a2427cd1b1d81bc2cfa4e2368ed5","src/unix/linux_like/linux/arch/sparc/mod.rs":"96ed29a86c629657c521a5e12dece22e570ef7ceee9e8f4a58c2e0782d74e01d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"33e971a4c2b20aada29a84fcae8b374664548f6d17462c03b031086d2c7bcb04","src/unix/linux_like/linux/gnu/b32/csky/mod.rs":"34e3a077861bb12baf7c97f7e4e8e1d52d58384337039361e09887b29c4f1ffe","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"07b89d105c91654079ed27cc373cc800aa4182f740dd5aa7a14ab756eb2968e6","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"1b0262dd90ba38e66c14404e8e07be11b9f1cc18fac1cd62db11e2b7e29dc673","src/unix/linux_like/linux/gnu/b32/mod.rs":"050fa9856b151b3e33214b570cf7527eca11eaa9145d40a1524824b5232b2500","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"7c3b9aad8856408517e056bdcfde877ca9d4529b9c39ffada70b56cdf244c403","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"5fa3d4b5f3c32251f5aa8c1130f3b7ccf37d66091734f43245ad3678cd216e9b","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"045c69c191b162532dd4e2a911542c31ce4fea5b800ff34834eecebd51c16565","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"6ae9d44a8eac65d537f3d173d70846d6a31a962868a8c416e59ddc6c4e3b9bdb","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"638b2d717dcf5b59a0058c3dabab43edd84de9d1d7da6e16ad0c58e863000417","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"28c11e70467b2f00735d3a04c369e96e04fd44d0587ee33359f38328b0677ee6","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"6295789556ca344693fe9e2f7a0319429f2d579c2b912734767f2a0e15a8f5f5","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"713c94cb544ddddde3076fa3f27747507ecb6becc8e89a50adaea78f8abab64c","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"457279848453764fba944be6123c7fadd6ec9ccdfaa9e2c98d482f729a29acd5","src/unix/linux_like/linux/gnu/b64/mod.rs":"30d1286c6b53a8c1cc090921a4192d5c05c7dbe0a7ff1aa4577774f9db934515","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"578fee223a62f2788352169b403d1547ae31d3e4be2806ab363b35239ed0aee2","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"1f6d2655bfdaf7e3c1030ede9cfd2608eaa29401e039c6a416e9a96bbccbe390","src/unix/linux_like/linux/gnu/b64/s390x.rs":"64fba1b75736ef6e22c11751c9daa3abd61af47b27da641d655e9ebb04b0f507","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"8c3760938b956ea8944bc9d59defe02901427e343b140f3a94f00338daa13d36","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"5c815f9a2b85266b4be9999fb58037ead6388f360d07241fbdc4b054e584d5ba","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"07240332eaf44996d86e37b12d71b519b499c9c9b57898441c58ac2e8c0cb6f7","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"914898b781dfe6b2f755730d6000223d1beea177731e180ccbfdd84a0b8b3bd9","src/unix/linux_like/linux/gnu/mod.rs":"fb6808e027f28dfb51a402f3bda4f8fca1a1e0513e19bc2ffa6278d5050ea9aa","src/unix/linux_like/linux/mod.rs":"e5bcfb00348a63f767f3cd37e8a3670f0228ca7a7cf26b5a3c5dcd996b5ad8ae","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"8bb6d0da8ac855120783a09d2ae07ea84696a4c657309b2d0895d05d92be5e7b","src/unix/linux_like/linux/musl/b32/hexagon.rs":"1b0c68839dc46d00010d99e946f356d50dc4ad1c7468f99a8afe839f9542ebd0","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"46e9507a4a19b3f79206cea1ff14126f27bc67740bbae7e8c2c59634d733434f","src/unix/linux_like/linux/musl/b32/mod.rs":"e0f53df7ca1dbe9b0b25ccecf1adf664227995e58d67a222a8d046d2a879dfc8","src/unix/linux_like/linux/musl/b32/powerpc.rs":"03fa0663ca77029ebd5cf99b1a8c7fab0fbbb51087dd44b939dd1b03ffae17c8","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"07e92b7bcd186241d728305bd522110a4f30c508c15e1be02bc29ddc75665f1f","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"dc90270beefe8090d2a87f926302affb0656ef0f847b6c10d332758359675a59","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"835c57754ccacd0a8630ec14661a98b3b0bb06f13cb1586eb36d3fde3da1fd29","src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs":"0be190a6aee332b19ff6f005f7ebc1ee3da61c7e0cc64aa049c4cf491027c250","src/unix/linux_like/linux/musl/b64/mips64.rs":"9ccd2d9ed31459b33435c09fa47e2cdef386149d2df013f6810e7499cbdf634a","src/unix/linux_like/linux/musl/b64/mod.rs":"be9250db1c01bc412b3e13a0d41102e58a3de28d0f59786c6cc6c2da8849bbea","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"5ae8c86a5939c021ee8f298ca0c141b5f323c4e7df3b0b8d0e59d493207ed4b5","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"f3893250f00da52e6895a39ca20947748340cab0c2176f2fbcc44f8a3d1df696","src/unix/linux_like/linux/musl/b64/s390x.rs":"9174e156d17f09de2c4975e974af40eaa3726f11d44e17077eb2e9efaf91d0a9","src/unix/linux_like/linux/musl/b64/wasm32/mod.rs":"503278ab86dfdbdd1f59188333162602744f413c937dcf132f97bc16ec03b943","src/unix/linux_like/linux/musl/b64/wasm32/wali.rs":"69e0d06289f1c86898ef3ab505e397af2acce146accb62efff654fe458b6af02","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"32b422900fc8831c718620dcd102fd91f4c819946a2b7cdab1df9ed7db5b8577","src/unix/linux_like/linux/musl/lfs64.rs":"308c5b5c9b2f4b1ad17e5c2d02946f84ae83e8f5cb0e789d8d3e76c1923a5d31","src/unix/linux_like/linux/musl/mod.rs":"17543653f63f7c0acb96857b42ebcf5591e225322c7e3fc2de7b750712642c11","src/unix/linux_like/linux/uclibc/arm/mod.rs":"a90c7811623714e168b676aa50b162931e66ce86f8c59b0acac131afde474b2c","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"59493f1ab84ddbcf9dc5881c9cfc26e28d4fb5322d63f60eb7de5f9e8e329580","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"a35532d5ae376f403873aa566f37bff99c6c323d334f3201667e5f7200b04643","src/unix/linux_like/linux/uclibc/mips/mod.rs":"af6323cebdeeeb4f0e86ddfddb9cf21cf251f27a98a8c02feb4f80e81d7a996a","src/unix/linux_like/linux/uclibc/mod.rs":"128d586702c6aa6f1d1c56342f855d62550063ea7df97c6c16abdb01fd6bf94e","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"059d1f15bf84e2226be6b842dc9466fc5f5bf55cdeed7a8742658ff25f05361c","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"061ca21386ad438be46e6c74f187240636c3ae351b81ca61daae56681c7f6c35","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"12f8d4049862fc0c4d94b770f2d0341c1c7bf3da0619436169c12cadc4093def","src/unix/linux_like/mod.rs":"23fb0653259a860b97abec8391d8f8766d1d6a3f77908112958bc4eda60af4cd","src/unix/mod.rs":"260101219eb92ed352920fad95b46362dec95e5206a4af4ee452327d3c20e629","src/unix/newlib/aarch64/mod.rs":"ec594c54dc0e7784668d02ef737fd194dcc3f1e6ee23328d810fd2453bcb6f20","src/unix/newlib/arm/mod.rs":"a1fb6caa077c2ed69adf12da07c814ffab4c1311579f23bae2b26a40cf180665","src/unix/newlib/espidf/mod.rs":"77e8ad5b7db027b8b0b5aa5126f15bc0e35b6f3deb2339acf403c961f13df26f","src/unix/newlib/generic.rs":"182e584f14e0984934130425dd2be0781ca2c131449b3ae1734a07c72c3d43cd","src/unix/newlib/horizon/mod.rs":"ae4e76ef8c04fa8580578e33037bcf1888a8e4d688aa6f115713f644b8a11313","src/unix/newlib/mod.rs":"6400cd5566e457fcfff211216ac86a49127f190b4b863703e1e5096cc3f9c125","src/unix/newlib/powerpc/mod.rs":"4e5f804a13e907e17ebb66dcbf3b0fe6e1a611f91876aad8d8a0a69c7df0a7e8","src/unix/newlib/rtems/mod.rs":"239c90d1daf783ff95168a3fcbc5a0c3d1f9c4b5a0ef32a0e4a22b861f82713a","src/unix/newlib/vita/mod.rs":"66765c20482f03c3fcb57d57dd3f31eeeab9729e1bb188191ad53a8fc124fc5f","src/unix/nto/aarch64.rs":"73ad54ebca13454a75c7b0815e853175070a8ac2eefa338012a03e8b59f01e0c","src/unix/nto/mod.rs":"fd7d2ea12b221cde0655878ede3e983e0df514fc721e99f11d847c81803a0acd","src/unix/nto/neutrino.rs":"2cef6af9943eec590b2b0af96a63bc3169e9d2af5c7713e3360eb09a807f248a","src/unix/nto/x86_64.rs":"8da99138e210516a95d49c8c0265eada4c5f7b93d59be86224844410f5e7929b","src/unix/nuttx/mod.rs":"353dd905bddd5d7bbfa21c4367fc4a6f562a214a632e8dfd3fbdb330615342ae","src/unix/redox/mod.rs":"e6a2852f2366001ffaa4a60ff217db6f44dfad9118c64919b59da4d6bcceb93a","src/unix/solarish/compat.rs":"4346fbe9f8640868ac20b63bf3b52f883a37587e1df15ffe54fa0393a48a5588","src/unix/solarish/illumos.rs":"c6305f2555bc542dd63ac0edbc8e517f65a7a870ef9c406d0809d25c6c32276c","src/unix/solarish/mod.rs":"3d85a3033275983a0ad1386af9ca37c2611187958a5dbaa0a1b4851fbb764a92","src/unix/solarish/solaris.rs":"59466eb385fefddac9a097ee3dab919df9043d2ac4061e31fe404c2c3ff5a23f","src/unix/solarish/x86.rs":"44261c1f1b300dac9fa0dab93ec85d0c3b3c48b15bc4515b9820c9421cff7427","src/unix/solarish/x86_64.rs":"d888cd12da647f543df8cce7ae04e4a67f8647f71fd14cf7b4f968dbafcd4f5e","src/unix/solarish/x86_common.rs":"4ae02d88622f7f080f5e8cd328f13187edbc5e124fb3e05e4cf212597f6cce48","src/vxworks/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/mod.rs":"cf1adb4b57e016298a58af602f408a1f16ff639be994331e57cff94285470b82","src/vxworks/powerpc.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/powerpc64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/riscv32.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/riscv64.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/x86.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/x86_64.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/wasi/mod.rs":"fefb225e135277652868e8065849e4d8c6bfe4a4961614b4f34645282e1ebb95","src/wasi/p2.rs":"feecc0485eabd2c32bc5d800df6ad1b9b4d282741342fb08792f2635204e1e08","src/windows/gnu/mod.rs":"320ddf761f731c24a27e061438ddbacb0630e3ad6f3bb39f6514c28dffd8ac9f","src/windows/mod.rs":"d69f6aea427500cdf47898b87e0a5425382d46b5ef3f2f843818a62372fa72f5","src/windows/msvc/mod.rs":"7bc0f1e7e73815296cd6b63b2700e12624e9f47b5c4113a1a87fae8e64549c00","src/xous.rs":"1a83621c40248ad4d0c08e1fd4c1107d5efcbc2f4f0169538b7b4a885abedbfa","tests/const_fn.rs":"8ac3171d7bced3576a4e93f48570b3e00c553d7510ab85a7473ae3b716a812dc"},"package":"1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"}
\ No newline at end of file
+{"files":{".cargo_vcs_info.json":"98fdce84ef32aa54b41de15fc9dbebbfe6fcdc8d3c03c17fed6f36f6bfc0843e",".editorconfig":"e57fecd6b82cd69640ca1bc4e44f0c7acfe5fc12f641f14af9536e323b4159db",".git-blame-ignore-revs":"761aa385c661241fa77c15b502c361398cf500bbb9f8c3a4579b412c4c6249d7",".release-plz.toml":"fcf2d382c4a2abd96caf9cc391b63e0c94d5832f5c48e9ab9eb4b2c847c0887c","CHANGELOG.md":"5dc77b4161d173b54837a0df9a25cc5f6dfbd7319918d2a3767527fe9920b210","CONTRIBUTING.md":"1cac4c47d46f83d06eeabfb7bf3a70b1a5405a913db1afa31c0e6387eb5bc189","Cargo.lock":"65aaca88ee856ff95e3cc6f25d79a6e8533e973665b4a67cc5d90bde9123cac7","Cargo.toml":"cbae2079ed7be2e12c340f4284e8987e7f532beb59aa6fcee2b7755b99c23fc7","Cargo.toml.orig":"1b4281b7d5468656703919278b880ed3a9f025a27fbadb7d9bd7d14940702b46","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"a8d47ff51ca256f56a8932dba07660672dbfe3004257ca8de708aac1415937a1","README.md":"a198be444453fe0b24d4fb6a8b732eb9e6dc77ebcfd119fca95b97b45c77c77a","build.rs":"f01c77e53ffb343d5c8885e097183589bb91d1fbab78b14bc0a658694616f95c","cherry-pick-stable.sh":"c7d95e3cf2624115219edc224e3ee56484d3f05f8e157f92d5a0e3a735e51640","rustfmt.toml":"e9321ff995242e8cb0a4984254f0748ef11a89ca4618cab8f047ee59a88768e7","src/fuchsia/aarch64.rs":"9cd032304a54321a8926cf3157194c5d79a2491b1b974a05fe71729fa43b5738","src/fuchsia/mod.rs":"e0ed316a30662f2bd1cdf1c8013440c6f2688c48083326f58533565a588e00dd","src/fuchsia/riscv64.rs":"f2aba92cb88480bd72a9eb7a41aafc63c5db293b93113fa973fe5ab1fd819e29","src/fuchsia/x86_64.rs":"a6de0a3c9a45e7af2f0bac96d73da6a7cfb8c003335183016b08a25e2acab65b","src/hermit.rs":"f150c2882a4d8e510259697ff7685899e74bfabf84e5d37103c54b4387093775","src/lib.rs":"86c46729a494060c40a63f3732c5a4c1f3d757ba08d398c1ec3de2030c91a27b","src/macros.rs":"ba63c9018fe21b20dba1ceea97fb293860148d8bd8fbc7c0ab038ce2afcff1b2","src/new/bionic/mod.rs":"752e47b8a3c8cd3090e1af970f4c3e33e5fe5bb3f388bab8cfa66d99562dbfab","src/new/bionic/sys/mod.rs":"0fc3d4ff1c37a21f47c127e5b3818d6c115690e39082be9c3796b8ac2cc99478","src/new/bionic/sys/socket.rs":"c11b51f13897a7fff420f28e93bef74ee084fc08cc0a3ab15d5b286656a0043c","src/new/linux_uapi/linux/can.rs":"5684eccda3fe635c94927bfcc3cc33e357b18a16b19b72ee6b27e0f6df72079f","src/new/linux_uapi/linux/can/j1939.rs":"ab2a330c3d3cca3ac6a693b381661772036e10a6dc0004db3809a4f42cf724ba","src/new/linux_uapi/linux/can/raw.rs":"cc39efa823b9f4d13bc0978ce51186e91d484c2bcfce4c6b0cbfa28a3a256488","src/new/linux_uapi/linux/mod.rs":"e9135b549d9427b99f5978ee4096e5b7d613104cf1a91433488536ce0af3f74f","src/new/linux_uapi/mod.rs":"7497197e880a36e9276110947611d1911bc2375316cd5969a18c83ac6f9be78d","src/new/mod.rs":"143ce9cb8b1f50d08594ec8d305ad1a9d663b3dac139a1a4b758ac5c25e8a14c","src/primitives.rs":"ea7e28520f5f3991ab444f9262cb8497a8794ced2cf5e1754795fe82ebed5fb7","src/psp.rs":"081cf4e5127ba10ebb62a9a5f8f849dd92742693db443db429d446ee472b5d41","src/sgx.rs":"964d6af358f5c85f948275090e5a7854e0169c43b5c338070b6a4cd156ebc9e6","src/solid/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/mod.rs":"0a89235e63d28a0e1a938243de862fe60bd3a3e9373c09c8c5cd42399b1c712e","src/switch.rs":"bfdcaf0268d79652ee52c1a2837959b8253e6a4124fd94dda82727ecc442a758","src/teeos/mod.rs":"d03cf399183ac40c6f74ce09787089007648d00b112c9fa8254723f0c2135c94","src/trusty.rs":"c5012aeefc4307c11374f062ad1d530e2ec556e7069e375de326a49c77f65e22","src/types.rs":"0d11841d8045deabf7bcded237a347978bd41e8e2fd227acc98400c383e221c6","src/unix/aix/mod.rs":"fec4d43917078c55debffe104e42d14dc66e039c7685566043a13ca42ebee072","src/unix/aix/powerpc64.rs":"45614bea9cf2732fca2a6d7f1bdc7d62eb2dcf2146993e1d726f677f6f4d3a47","src/unix/bsd/apple/b32/mod.rs":"56e90d43e36bcf0a4012072f92dc905dd40af386014b94c978f30b3bcbed8abf","src/unix/bsd/apple/b64/aarch64/mod.rs":"897be1845603876b2849a1fddf53ccd8a97b1156907f4833f7dfb0778e840d0f","src/unix/bsd/apple/b64/mod.rs":"75a313514fd3b9f21391ddb77f965386c36e99bbf4a4c952445e4e8d50bb16b5","src/unix/bsd/apple/b64/x86_64/mod.rs":"889efaf7baeca8ba2857fba1cba19c09dd1d27f3661b6687295f82caba716d9a","src/unix/bsd/apple/mod.rs":"be8da0a8b9c788f7f3302ad5578eae7cdeab88ea198918c3cd0545aae157b919","src/unix/bsd/freebsdlike/dragonfly/errno.rs":"07b19390b9ae8f541ac35fd4e14685d639b95152d6d7a33814bb749b8b927298","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"dc6daf4a8e04ad504e2aea0d489457299d87c05a6e966283b7a40e343887a2b8","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"246e20e9a143d4ac81d37d940e020ede283f8df5aecd5d149b297664c4293a84","src/unix/bsd/freebsdlike/freebsd/arm.rs":"6e938534090f85040f7228b781ba57020c412d4f8f99d65ca5ce2a0a0baf93a1","src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs":"951c9297ed31a13509716068bc04c202ace3cbca3cc485e3a7f6b2fefa06e396","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"62ae6e372b644a4270c0bb325edaac4a9e553ad83ffdcf2f4d8608a2ec2bae9c","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"16595db5aaf422e425ac9ba1e693aa0f176f743ca194a767f265e1b3cb1b3f22","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"8467832d4b8a73e473371f49a2d7b56f632b8f44262c43b5f409c4094cbad26a","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"2027bae85dac0ca1cfc97f4304023c06174231af3547f33c3f4fed0dcf8c5732","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"d536725067b3a85fc57929d95a85dfdbe593c9fbe72c246f4ab855f602074fe5","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs":"9835c3374c2daea20de73ab7896044bc1de14f6cd0711df9d47d4e3a001c4ded","src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/mod.rs":"69818c7db4f93d1a2e61f414d433fb9c1007dcde11260a69f808c8b7b92834be","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"809148c48a16cef7de40378c9322a5795b40fec8c7eeaccb20df44a3c1c77c1d","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"8ec51f2eb1eae1504b743fc22b0c498c1a1c11bbf17f8199d9d3a6af2ab108ca","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"4e8e313c3a3736fbb663c26bc445684e89c91092870dc896848df13f8ef89cfe","src/unix/bsd/freebsdlike/freebsd/x86.rs":"a3a17037050ba9f2314574a2cec8ff1962d08561e60616a3f170ba256371ff0b","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"b79601d4f5f297f2aafb17aa4ed69f128d1668eda5c59866c3eae498034403aa","src/unix/bsd/freebsdlike/mod.rs":"4acf3a50e2944b0e7a35b5a6a4cae40e61283f62461b598d9efb252045aeaa8d","src/unix/bsd/mod.rs":"e05f88aabb6ca6c3f388d314a4235894734f8a0a3c0ea87f748ea7de4132a70b","src/unix/bsd/netbsdlike/mod.rs":"fa5c797fb3f57b637284ed725c10f63827f0de008edd326341dc56c1638610c7","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"ba2425edbf025f13ab3c3534d1671d310392df3a7d237539817d9cfa675971c8","src/unix/bsd/netbsdlike/netbsd/arm.rs":"f498ac1c11d0ebf6ee2c23cddb573c2358dcb5191924bd96e1bbc86870a86407","src/unix/bsd/netbsdlike/netbsd/mips.rs":"20cdd8d1427c986ecc3fcf7960d337917a13cfd8386dd2d54f8693a23d60892f","src/unix/bsd/netbsdlike/netbsd/mod.rs":"461feb5dc8dddea353ab6d32519045bc9f16525a48449c93dc7148469d94c9c3","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"c19c4edbc73b5a97b51e3e2ad39b9fee02ad15e80c70ceb3a1abfe977e5c0ead","src/unix/bsd/netbsdlike/netbsd/riscv64.rs":"efa1a156cff1ab2450439adbb3ab2113bed6b7de2205c99e9cba875aa2b1c153","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"d50816e830225779ac9e9a55a7e3e097882153d72987061d76a96ee736c8af9c","src/unix/bsd/netbsdlike/netbsd/x86.rs":"3006b6a086c0241f5383ca101e7b9357368d713f9c38400633491656d110798e","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"cb864e23a32eff1bf37563218cf6ce7dac8d028584c385107c84562cf1d87866","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"3960096fb915d2f75015e1706720d4cd0044938bcfe6727b097751b4c47df6a5","src/unix/bsd/netbsdlike/openbsd/arm.rs":"f064d935f416ca9f7e5e767b9b46da2250c997d667c0c7f4b4c7dfe02d0258c3","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"bee7664d88f8451ae22552fc0721b6b6a6dee2493cc42bcb9829c1e47e4b05f5","src/unix/bsd/netbsdlike/openbsd/mod.rs":"154badb82f62c726fa7a0c320c5934bf459752262dcd101d43c2b3d3afb58cc4","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"f064d935f416ca9f7e5e767b9b46da2250c997d667c0c7f4b4c7dfe02d0258c3","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1f62a42e2970c42de9e3492fbf3cd5b45410889f033743579266342d1a9e2a00","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"c93baaf8e3afa8c79a1acb03234b0bb85b148a706481de909528513f45afa136","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"8d4c5a4cae63e09e1c156164ddc82e0fc77926841d4d4e419dd2e7a7b7145f58","src/unix/bsd/netbsdlike/openbsd/x86.rs":"e6da2fdff7706fd3eac147d3aaf16afdd8542f231f502660d1d89c79b5eca21b","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"89be4988c6acca7ce411aa2907401b9fed1ffce6ad606cc150683f1e136cba94","src/unix/cygwin/mod.rs":"c98bb7c1118c249f2e7533c68b0d77bd778a1050ab52aab603a03151061e084f","src/unix/haiku/b32.rs":"c3f8678ceee65a3094d8133b0d1a94470860e0b1867977f0569c52c5a20e039f","src/unix/haiku/b64.rs":"f97ce9225f4710893dab03ab3e13bc62152cc84f90c597ec88f6dc1f4c27d242","src/unix/haiku/bsd.rs":"4d9af31fdac2561ee5f942dca97dd2f48139ca74660d40b854b307fa5679d1c8","src/unix/haiku/mod.rs":"a1e1ab46a354da23a8348331d014b184a3f3b9d7fec8ced4c6efede9f5c38a45","src/unix/haiku/native.rs":"8248c0491d62ed96b5c2707a998f8d13cf2a49f2d06fa724848863860cb40e69","src/unix/haiku/x86_64.rs":"09f2384474b2fcb7d0febb0e9e802610a627cadca29dc0e60eb4cfe15552f978","src/unix/hurd/b32.rs":"501f426f7aeb60acf4119064100dd94bbdfebff2cec785428708059d853dc123","src/unix/hurd/b64.rs":"b9b2082e721a5ec89ba55fd5a16bbffcc8a05ca7cef6dbfbd78aff0806cb931f","src/unix/hurd/mod.rs":"b09754b468b78b64463cbf6d5d50ffba76e27efe66bb1e5020054627d751d98a","src/unix/linux_like/android/b32/arm.rs":"e68f6a15870a22e0383770ed1a5bd443d4c2ed237d16fea338c5da1ab9bf1fe3","src/unix/linux_like/android/b32/mod.rs":"5b10ebe56435d868846ae720bb9081cf814486722b5c13520fd4ef50a7ecfb58","src/unix/linux_like/android/b32/x86/mod.rs":"52f402bc27e3ddc519cd2699205bc0f31ba9737f89772d26c07e9c28a7f35762","src/unix/linux_like/android/b64/aarch64/mod.rs":"6d4fcf287ee09d65cfd8d8d9e2b551185f1cf9d90072922b9f703d2871deb036","src/unix/linux_like/android/b64/mod.rs":"04346a4a75b7cf20992eed6a2cfb986d38daf539208c462c10a7ccf3cd516068","src/unix/linux_like/android/b64/riscv64/mod.rs":"10705a5608bc761718ed54ce6dcc2a83c8aa9300337c4f9a67152637dc8d3b11","src/unix/linux_like/android/b64/x86_64/mod.rs":"7243327f35f4f4e59642c9015ee65a13fbc61618fb8ca615580f7f84a3b72e45","src/unix/linux_like/android/mod.rs":"a75260c2c9951ab305559d249a9586167d609a473ecf1d568c876a428d866da1","src/unix/linux_like/emscripten/lfs64.rs":"3a1d1779bcf16525a578a68237f9854090eae4c9819e18ffb5a288f39be4afbe","src/unix/linux_like/emscripten/mod.rs":"fab8e539c9681b444e96cc46eed01fd2640347ff0499b82f238ccec796f15175","src/unix/linux_like/linux/arch/generic/mod.rs":"c8f4d88ba7ffe044c47fc84ca1e21751bfd2446806ccabbe8729958cbb5d1ccc","src/unix/linux_like/linux/arch/mips/mod.rs":"058ebf07f8b10358af9a7f66bd96ba14df1cc6a942203da9abe8d1abab00fcbb","src/unix/linux_like/linux/arch/mod.rs":"8bc5898b03760a95dd4f124ac76ad92e5ae36b2d0644203d752ef2b37e487c3a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"0e20b7e63fe39a200cb4813eeb934bc25d91a2427cd1b1d81bc2cfa4e2368ed5","src/unix/linux_like/linux/arch/sparc/mod.rs":"96ed29a86c629657c521a5e12dece22e570ef7ceee9e8f4a58c2e0782d74e01d","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"0ab9b524f4e4182eb92ac40c7b5101ce73509aa2d483eab58eef212005c21497","src/unix/linux_like/linux/gnu/b32/csky/mod.rs":"8fdab3a121a111b9856f0de29fe75262d8aa5f1a3d75b273cc72c8c809e87c48","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"4c79cca606495e3d98f386a0f8d447f3f281df5ade019380b9018f05999bf849","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"981838f4092d4e3e343087903246ad7cfd7dc1a9fb1fc854419b744ed395d742","src/unix/linux_like/linux/gnu/b32/mod.rs":"050fa9856b151b3e33214b570cf7527eca11eaa9145d40a1524824b5232b2500","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"7c3b9aad8856408517e056bdcfde877ca9d4529b9c39ffada70b56cdf244c403","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"4bdfd096759a489c0fcbfb1f38ff5c364bbe3fa3f6f3844a43486f5fb2e1eb24","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"d8fc8800d01891bb9fd652008817eba58bf9fa823a0cac658bc252ac53885222","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"ce42dc6c6b620f898d924fdb26895b7b832a4f38e838059f99f663bda2cb3e69","src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs":"638b2d717dcf5b59a0058c3dabab43edd84de9d1d7da6e16ad0c58e863000417","src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs":"28c11e70467b2f00735d3a04c369e96e04fd44d0587ee33359f38328b0677ee6","src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs":"9bfab4e70363d559f76600cbb38659f8e204bea14b165e0054118d34ad3f94ff","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"f2d8b176c64d791a5a34b7753cab2f50e34cd450e6819bf0b180bd3c6a9d9771","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"3fac2105995a594d66e39912f4613ed67b1046a0fc11de97487306337729dccb","src/unix/linux_like/linux/gnu/b64/mod.rs":"30d1286c6b53a8c1cc090921a4192d5c05c7dbe0a7ff1aa4577774f9db934515","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"285c465bd0cb1e66c2907306d560316b561732bca8ed2008eba370f48a0f957f","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"cd5b8088ddb38bbee6cd8f293f4dd8e0970a5c04d25b4bb4f4c8a5da61a09029","src/unix/linux_like/linux/gnu/b64/s390x.rs":"64fba1b75736ef6e22c11751c9daa3abd61af47b27da641d655e9ebb04b0f507","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"ef87054c07622d4f53401e72a9a937331d573802c7bfa707761097af8c47a968","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"deb7d1bb4639e0adaba2ad63636bc30df7d5318d934e514c0273fa08051eb5b2","src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs":"07240332eaf44996d86e37b12d71b519b499c9c9b57898441c58ac2e8c0cb6f7","src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs":"914898b781dfe6b2f755730d6000223d1beea177731e180ccbfdd84a0b8b3bd9","src/unix/linux_like/linux/gnu/mod.rs":"606d323e8aa2c14b22a54f9fc8720ae237df583ae1ba9e5bfe2249663ad02c5c","src/unix/linux_like/linux/mod.rs":"4ab0a27762842a59a5e59f9029d8a49527de4226c5d6e24156f316d7f52a4284","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"8df7c7015240f62151363a0a545fb3be96e5d816b62ef673d84294e87e9bb9ea","src/unix/linux_like/linux/musl/b32/hexagon.rs":"1b0c68839dc46d00010d99e946f356d50dc4ad1c7468f99a8afe839f9542ebd0","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"12c57cfa8eae992b3764114ba6868cd729995d71786029aa0f775086e935065b","src/unix/linux_like/linux/musl/b32/mod.rs":"e0f53df7ca1dbe9b0b25ccecf1adf664227995e58d67a222a8d046d2a879dfc8","src/unix/linux_like/linux/musl/b32/powerpc.rs":"92089167ddbe1fde8663373699ee16c7b01c451c442c27ab1a392582c992dc32","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"f13543de5c3b4f8c23d9c9f4f3ad90f514be122d2707f7f781c696261cb11f91","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"264aafdd2d3dbbf57764a671797ca0ef53baee4737f7acf09db4f14a5d13831d","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"5ba43a3198d9dff45bc411925353674f1e4cef29eace6b2b1cb6cad070680308","src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs":"294414bcb24a5b59335e49d00f6285b926bd352df20dcff4f935ae094d21495e","src/unix/linux_like/linux/musl/b64/mips64.rs":"d448cf011098728d32eab0b212696063c3365ef5e94fd5e26f8861a3efdbb097","src/unix/linux_like/linux/musl/b64/mod.rs":"e3055a6690ed1dc63b865957be649bfa165852c693e2a387c2c627939157a773","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"03552edded40fccc52c8259af289cbeb074482c1337ef0c32c3cfff81bd3d537","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"e13c6430f950035f94989771122c733866651194e7218c7d0b243ae04ef7c864","src/unix/linux_like/linux/musl/b64/s390x.rs":"30f9ac1527e49a57f6d829e54a82ca48e7a1b74507904e6c89a13f933da30ff5","src/unix/linux_like/linux/musl/b64/wasm32/mod.rs":"2d2a01fd01b372ebf1ff63d23072ae548f8a392f443f41a455e0bfb6a8705b70","src/unix/linux_like/linux/musl/b64/wasm32/wali.rs":"69e0d06289f1c86898ef3ab505e397af2acce146accb62efff654fe458b6af02","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"95b8adc3443988aa4908e8c1d8c8c0a1619a7636e8ea286edd95ec815d6cd5d2","src/unix/linux_like/linux/musl/lfs64.rs":"308c5b5c9b2f4b1ad17e5c2d02946f84ae83e8f5cb0e789d8d3e76c1923a5d31","src/unix/linux_like/linux/musl/mod.rs":"d8afb6167cab328d65ce2a755a5a4559de30173dd4d09bb90001734a15437730","src/unix/linux_like/linux/uclibc/arm/mod.rs":"a90c7811623714e168b676aa50b162931e66ce86f8c59b0acac131afde474b2c","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"59493f1ab84ddbcf9dc5881c9cfc26e28d4fb5322d63f60eb7de5f9e8e329580","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"a35532d5ae376f403873aa566f37bff99c6c323d334f3201667e5f7200b04643","src/unix/linux_like/linux/uclibc/mips/mod.rs":"e552f579a8dc9e690891113aa6360607ad962bd84cbb60c370b5c5f7c7d1d8c0","src/unix/linux_like/linux/uclibc/mod.rs":"128d586702c6aa6f1d1c56342f855d62550063ea7df97c6c16abdb01fd6bf94e","src/unix/linux_like/linux/uclibc/x86_64/l4re.rs":"f29e4a969f0bf7359b984e17335cc957f980a70b49912c032fd762dd05743081","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"be62714a2ff04387093145a3d765585eaaac71e4fb53d1983546a57940fa2ce4","src/unix/linux_like/linux/uclibc/x86_64/other.rs":"12f8d4049862fc0c4d94b770f2d0341c1c7bf3da0619436169c12cadc4093def","src/unix/linux_like/mod.rs":"537ab6b4af3685a71487e31491d82cc2a08e8d4ce4a9dc88c6eeb29ae1daf5b7","src/unix/mod.rs":"4f6c804705ede5fa221cce2a9b23a69daaeccdbf390647a4d9f4e94aa462082d","src/unix/newlib/aarch64/mod.rs":"ec594c54dc0e7784668d02ef737fd194dcc3f1e6ee23328d810fd2453bcb6f20","src/unix/newlib/arm/mod.rs":"a1fb6caa077c2ed69adf12da07c814ffab4c1311579f23bae2b26a40cf180665","src/unix/newlib/espidf/mod.rs":"77e8ad5b7db027b8b0b5aa5126f15bc0e35b6f3deb2339acf403c961f13df26f","src/unix/newlib/generic.rs":"182e584f14e0984934130425dd2be0781ca2c131449b3ae1734a07c72c3d43cd","src/unix/newlib/horizon/mod.rs":"9ea04f90566fc14fcfd4ec5bd7c1ef467d6b26ce80bda73f4eec2fe7b652e816","src/unix/newlib/mod.rs":"18def44ab6d32cc50cb89242a1ef9edfa0ffe8010cafb27aaef8ebb970696dea","src/unix/newlib/powerpc/mod.rs":"4e5f804a13e907e17ebb66dcbf3b0fe6e1a611f91876aad8d8a0a69c7df0a7e8","src/unix/newlib/rtems/mod.rs":"6e26c8d4ce78557b3d0eef33f0057e46545c655612c7d86c38bb759f5e032788","src/unix/newlib/vita/mod.rs":"20fd016df6c8aa9097ab3410c5efd187a2f2a202b5e7c0e0ee67714036108329","src/unix/nto/aarch64.rs":"73ad54ebca13454a75c7b0815e853175070a8ac2eefa338012a03e8b59f01e0c","src/unix/nto/mod.rs":"a5219667280d9664a382b91dde8374f9959252a402d1b85dd3577957f4bf88b9","src/unix/nto/neutrino.rs":"2cef6af9943eec590b2b0af96a63bc3169e9d2af5c7713e3360eb09a807f248a","src/unix/nto/x86_64.rs":"8da99138e210516a95d49c8c0265eada4c5f7b93d59be86224844410f5e7929b","src/unix/nuttx/mod.rs":"137c69eca97ba9e0ca61baf6b9dafc11d68f07a1f5de527f9ff3fdc30e3f1ca9","src/unix/redox/mod.rs":"7a5b62cdb08d8eae9c871d9d3158cedf8a603c50716263228bf0a1568daf32c3","src/unix/solarish/compat.rs":"4346fbe9f8640868ac20b63bf3b52f883a37587e1df15ffe54fa0393a48a5588","src/unix/solarish/illumos.rs":"c6305f2555bc542dd63ac0edbc8e517f65a7a870ef9c406d0809d25c6c32276c","src/unix/solarish/mod.rs":"fd370036f3b0a198369104d426692ea4d1d4b9905ad3c15d61caec38e908dd02","src/unix/solarish/solaris.rs":"4045113ee68a9e29f6e2211dbfabe7fd423b21e7b882a982a589719d2c437657","src/unix/solarish/x86.rs":"44261c1f1b300dac9fa0dab93ec85d0c3b3c48b15bc4515b9820c9421cff7427","src/unix/solarish/x86_64.rs":"d888cd12da647f543df8cce7ae04e4a67f8647f71fd14cf7b4f968dbafcd4f5e","src/unix/solarish/x86_common.rs":"4ae02d88622f7f080f5e8cd328f13187edbc5e124fb3e05e4cf212597f6cce48","src/vxworks/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/mod.rs":"29474e4025c3bcccc1aa63407928d58623ea7337aa74c325ca8fb01248d52256","src/vxworks/powerpc.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/powerpc64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/riscv32.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/riscv64.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/x86.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/vxworks/x86_64.rs":"b1f933205800f0da00f975d53b18fe0035e075cc4613acf110a09a277dc3302a","src/wasi/mod.rs":"2d15648f99fe90cff9076f1ad93c9dffe04051a4f350e89ca4e513a20e97933c","src/wasi/p2.rs":"feecc0485eabd2c32bc5d800df6ad1b9b4d282741342fb08792f2635204e1e08","src/windows/gnu/mod.rs":"f8c154637cd4b9b5b35b197373d67742d0678abb5f674905897a00029785c455","src/windows/mod.rs":"455795a86354420b1151f35d0ec6ab75e165adf4abbd9111352e9d44edb20634","src/windows/msvc/mod.rs":"7bc0f1e7e73815296cd6b63b2700e12624e9f47b5c4113a1a87fae8e64549c00","src/xous.rs":"1a83621c40248ad4d0c08e1fd4c1107d5efcbc2f4f0169538b7b4a885abedbfa","tests/const_fn.rs":"8ac3171d7bced3576a4e93f48570b3e00c553d7510ab85a7473ae3b716a812dc"},"package":"2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"}
\ No newline at end of file
diff --git a/external/vendor/libc/.cargo_vcs_info.json b/external/vendor/libc/.cargo_vcs_info.json
index 2d08eb2..322f793 100644
--- a/external/vendor/libc/.cargo_vcs_info.json
+++ b/external/vendor/libc/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
{
"git": {
- "sha1": "ea6f07f9828c007a752fab78eedc0565f36096df"
+ "sha1": "9f598d245e18ecb243118cfde095f24598ec9d5b"
},
"path_in_vcs": ""
}
\ No newline at end of file
diff --git a/external/vendor/libc/.editorconfig b/external/vendor/libc/.editorconfig
new file mode 100644
index 0000000..155c990
--- /dev/null
+++ b/external/vendor/libc/.editorconfig
@@ -0,0 +1,7 @@
+[*.sh]
+# See https://github.com/mvdan/sh/blob/master/cmd/shfmt/shfmt.1.scd#examples
+indent_style = space
+indent_size = 4
+
+switch_case_indent = true
+space_redirects = true
diff --git a/external/vendor/libc/CHANGELOG.md b/external/vendor/libc/CHANGELOG.md
index fa193e5..e9b726c 100644
--- a/external/vendor/libc/CHANGELOG.md
+++ b/external/vendor/libc/CHANGELOG.md
@@ -1,5 +1,135 @@
# Changelog
+## [0.2.177](https://github.com/rust-lang/libc/compare/0.2.176...0.2.177) - 2025-10-09
+
+### Added
+
+- Apple: Add `TIOCGETA`, `TIOCSETA`, `TIOCSETAW`, `TIOCSETAF` constants ([#4736](https://github.com/rust-lang/libc/pull/4736))
+- Apple: Add `pthread_cond_timedwait_relative_np` ([#4719](https://github.com/rust-lang/libc/pull/4719))
+- BSDs: Add `_CS_PATH` constant ([#4738](https://github.com/rust-lang/libc/pull/4738))
+- Linux-like: Add `SIGEMT` for mips* and sparc* architectures ([#4730](https://github.com/rust-lang/libc/pull/4730))
+- OpenBSD: Add `elf_aux_info` ([#4729](https://github.com/rust-lang/libc/pull/4729))
+- Redox: Add more sysconf constants ([#4728](https://github.com/rust-lang/libc/pull/4728))
+- Windows: Add `wcsnlen` ([#4721](https://github.com/rust-lang/libc/pull/4721))
+
+### Changed
+
+- WASIP2: Invert conditional to include p2 APIs ([#4733](https://github.com/rust-lang/libc/pull/4733))
+
+## [0.2.176](https://github.com/rust-lang/libc/compare/0.2.175...0.2.176) - 2025-09-23
+
+### Support
+
+- The default FreeBSD version has been raised from 11 to 12. This matches `rustc` since 1.78. ([#2406](https://github.com/rust-lang/libc/pull/2406))
+- `Debug` is now always implemented, rather than being gated behind the `extra_traits` feature. ([#4624](https://github.com/rust-lang/libc/pull/4624))
+
+### Added
+
+- AIX: Restore some non-POSIX functions guarded by the `_KERNEL` macro. ([#4607](https://github.com/rust-lang/libc/pull/4607))
+- FreeBSD 14: Add `st_fileref` to `struct stat` ([#4642](https://github.com/rust-lang/libc/pull/4642))
+- Haiku: Add the `accept4` POSIX call ([#4586](https://github.com/rust-lang/libc/pull/4586))
+- Introduce a wrapper for representing padding ([#4632](https://github.com/rust-lang/libc/pull/4632))
+- Linux: Add `EM_RISCV` ([#4659](https://github.com/rust-lang/libc/pull/4659))
+- Linux: Add `MS_NOSYMFOLLOW` ([#4389](https://github.com/rust-lang/libc/pull/4389))
+- Linux: Add `backtrace_symbols(_fd)` ([#4668](https://github.com/rust-lang/libc/pull/4668))
+- Linux: Add missing `SOL_PACKET` optnames ([#4669](https://github.com/rust-lang/libc/pull/4669))
+- Musl s390x: Add `SYS_mseal` ([#4549](https://github.com/rust-lang/libc/pull/4549))
+- NuttX: Add `__errno` ([#4687](https://github.com/rust-lang/libc/pull/4687))
+- Redox: Add `dirfd`, `VDISABLE`, and resource consts ([#4660](https://github.com/rust-lang/libc/pull/4660))
+- Redox: Add more `resource.h`, `fcntl.h` constants ([#4666](https://github.com/rust-lang/libc/pull/4666))
+- Redox: Enable `strftime` and `mkostemp[s]` ([#4629](https://github.com/rust-lang/libc/pull/4629))
+- Unix, Windows: Add `qsort_r` (Unix), and `qsort(_s)` (Windows) ([#4677](https://github.com/rust-lang/libc/pull/4677))
+- Unix: Add `dlvsym` for Linux-gnu, FreeBSD, and NetBSD ([#4671](https://github.com/rust-lang/libc/pull/4671))
+- Unix: Add `sigqueue` ([#4620](https://github.com/rust-lang/libc/pull/4620))
+
+### Changed
+
+- FreeBSD 15: Mark `kinfo_proc` as non-exhaustive ([#4553](https://github.com/rust-lang/libc/pull/4553))
+- FreeBSD: Set the ELF symbol version for `readdir_r` ([#4694](https://github.com/rust-lang/libc/pull/4694))
+- Linux: Correct the config for whether or not `epoll_event` is packed ([#4639](https://github.com/rust-lang/libc/pull/4639))
+- Tests: Replace the old `ctest` with the much more reliable new implementation ([#4655](https://github.com/rust-lang/libc/pull/4655) and many related PRs)
+
+### Fixed
+
+- AIX: Fix the type of the 4th arguement of `getgrnam_r` ([#4656](https://github.com/rust-lang/libc/pull/4656
+- FreeBSD: Limit `P_IDLEPROC` to FreeBSD 15 ([#4640](https://github.com/rust-lang/libc/pull/4640))
+- FreeBSD: Limit `mcontext_t::mc_tlsbase` to FreeBSD 15 ([#4640](https://github.com/rust-lang/libc/pull/464))
+- FreeBSD: Update gating of `mcontext_t.mc_tlsbase` ([#4703](https://github.com/rust-lang/libc/pull/4703))
+- Musl s390x: Correct the definition of `statfs[64]` ([#4549](https://github.com/rust-lang/libc/pull/4549))
+- Musl s390x: Make `fpreg_t` a union ([#4549](https://github.com/rust-lang/libc/pull/4549))
+- Redox: Fix the types of `gid_t` and `uid_t` ([#4689](https://github.com/rust-lang/libc/pull/4689))
+- Redox: Fix the value of `MAP_FIXED` ([#4684](https://github.com/rust-lang/libc/pull/4684))
+
+### Deprecated
+
+- Apple: Correct the `deprecated` attribute for `iconv` ([`a97a0b53`](https://github.com/rust-lang/libc/commit/a97a0b53fb7faf5f99cd720ab12b1b8a5bf9f950))
+- FreeBSD: Deprecate `TIOCMGDTRWAIT` and `TIOCMSDTRWAIT` ([#4685](https://github.com/rust-lang/libc/pull/4685))
+
+### Removed
+
+- FreeBSD: Remove `JAIL_{GET,SET}_MASK`, `_MC_FLAG_MASK` ([#4691](https://github.com/rust-lang/libc/pull/4691))
+
+## [0.2.175](https://github.com/rust-lang/libc/compare/0.2.174...0.2.175) - 2025-08-10
+
+### Added
+
+- AIX: Add `getpeereid` ([#4524](https://github.com/rust-lang/libc/pull/4524))
+- AIX: Add `struct ld_info` and friends ([#4578](https://github.com/rust-lang/libc/pull/4578))
+- AIX: Retore `struct winsize` ([#4577](https://github.com/rust-lang/libc/pull/4577))
+- Android: Add UDP socket option constants ([#4619](https://github.com/rust-lang/libc/pull/4619))
+- Android: Add `CLONE_CLEAR_SIGHAND` and `CLONE_INTO_CGROUP` ([#4502](https://github.com/rust-lang/libc/pull/4502))
+- Android: Add more `prctl` constants ([#4531](https://github.com/rust-lang/libc/pull/4531))
+- FreeBSD Add further TCP stack-related constants ([#4196](https://github.com/rust-lang/libc/pull/4196))
+- FreeBSD x86-64: Add `mcontext_t.mc_tlsbase ` ([#4503](https://github.com/rust-lang/libc/pull/4503))
+- FreeBSD15: Add `kinfo_proc.ki_uerrmsg` ([#4552](https://github.com/rust-lang/libc/pull/4552))
+- FreeBSD: Add `in_conninfo` ([#4482](https://github.com/rust-lang/libc/pull/4482))
+- FreeBSD: Add `xinpgen` and related types ([#4482](https://github.com/rust-lang/libc/pull/4482))
+- FreeBSD: Add `xktls_session` ([#4482](https://github.com/rust-lang/libc/pull/4482))
+- Haiku: Add functionality from `libbsd` ([#4221](https://github.com/rust-lang/libc/pull/4221))
+- Linux: Add `SECBIT_*` ([#4480](https://github.com/rust-lang/libc/pull/4480))
+- NetBSD, OpenBSD: Export `ioctl` request generator macros ([#4460](https://github.com/rust-lang/libc/pull/4460))
+- NetBSD: Add `ptsname_r` ([#4608](https://github.com/rust-lang/libc/pull/4608))
+- RISCV32: Add time-related syscalls ([#4612](https://github.com/rust-lang/libc/pull/4612))
+- Solarish: Add `strftime*` ([#4453](https://github.com/rust-lang/libc/pull/4453))
+- linux: Add `EXEC_RESTRICT_*` and `EXEC_DENY_*` ([#4545](https://github.com/rust-lang/libc/pull/4545))
+
+### Changed
+
+- AIX: Add `const` to signatures to be consistent with other platforms ([#4563](https://github.com/rust-lang/libc/pull/4563))
+
+### Fixed
+
+- AIX: Fix the type of `struct statvfs.f_fsid` ([#4576](https://github.com/rust-lang/libc/pull/4576))
+- AIX: Fix the type of constants for the `ioctl` `request` argument ([#4582](https://github.com/rust-lang/libc/pull/4582))
+- AIX: Fix the types of `stat{,64}.st_*tim` ([#4597](https://github.com/rust-lang/libc/pull/4597))
+- AIX: Use unique `errno` values ([#4507](https://github.com/rust-lang/libc/pull/4507))
+- Build: Fix an incorrect `target_os` -> `target_arch` check ([#4550](https://github.com/rust-lang/libc/pull/4550))
+- FreeBSD: Fix the type of `xktls_session_onedir.ifnet` ([#4552](https://github.com/rust-lang/libc/pull/4552))
+- Mips64 musl: Fix the type of `nlink_t` ([#4509](https://github.com/rust-lang/libc/pull/4509))
+- Mips64 musl: Use a special MIPS definition of `stack_t` ([#4528](https://github.com/rust-lang/libc/pull/4528))
+- Mips64: Fix `SI_TIMER`, `SI_MESGQ` and `SI_ASYNCIO` definitions ([#4529](https://github.com/rust-lang/libc/pull/4529))
+- Musl Mips64: Swap the order of `si_errno` and `si_code` in `siginfo_t` ([#4530](https://github.com/rust-lang/libc/pull/4530))
+- Musl Mips64: Use a special MIPS definition of `statfs` ([#4527](https://github.com/rust-lang/libc/pull/4527))
+- Musl: Fix the definition of `fanotify_event_metadata` ([#4510](https://github.com/rust-lang/libc/pull/4510))
+- NetBSD: Correct `enum fae_action` to be `#[repr(C)]` ([#60a8cfd5](https://github.com/rust-lang/libc/commit/60a8cfd564f83164d45b9533ff7a0d7371878f2a))
+- PSP: Correct `char` -> `c_char` ([eaab4fc3](https://github.com/rust-lang/libc/commit/eaab4fc3f05dc646a953d4fd5ba46dfa1f8bd6f6))
+- PowerPC musl: Fix `termios` definitions ([#4518](https://github.com/rust-lang/libc/pull/4518))
+- PowerPC musl: Fix the definition of `EDEADLK` ([#4517](https://github.com/rust-lang/libc/pull/4517))
+- PowerPC musl: Fix the definition of `NCCS` ([#4513](https://github.com/rust-lang/libc/pull/4513))
+- PowerPC musl: Fix the definitions of `MAP_LOCKED` and `MAP_NORESERVE` ([#4516](https://github.com/rust-lang/libc/pull/4516))
+- PowerPC64 musl: Fix the definition of `shmid_ds` ([#4519](https://github.com/rust-lang/libc/pull/4519))
+
+### Deprecated
+
+- Linux: `MAP_32BIT` is only defined on x86 on non-x86 architectures ([#4511](https://github.com/rust-lang/libc/pull/4511))
+
+### Removed
+
+- AIX: Remove duplicate constant definitions `FIND` and `ENTER` ([#4588](https://github.com/rust-lang/libc/pull/4588))
+- s390x musl: Remove `O_FSYNC` ([#4515](https://github.com/rust-lang/libc/pull/4515))
+- s390x musl: Remove `RTLD_DEEPBIND` ([#4515](https://github.com/rust-lang/libc/pull/4515))
+
+
## [0.2.174](https://github.com/rust-lang/libc/compare/0.2.173...0.2.174) - 2025-06-17
### Added
diff --git a/external/vendor/libc/CONTRIBUTING.md b/external/vendor/libc/CONTRIBUTING.md
index 74f49f3..0cdfaea 100644
--- a/external/vendor/libc/CONTRIBUTING.md
+++ b/external/vendor/libc/CONTRIBUTING.md
@@ -89,7 +89,7 @@ standard, it's just a list shared among all OSs that declare `#[cfg(unix)]`.
We have two automated tests running on
[GitHub Actions](https://github.com/rust-lang/libc/actions):
-1. [`libc-test`](https://github.com/gnzlbg/ctest)
+1. `libc-test`
- `cd libc-test && cargo test`
- Use the `skip_*()` functions in `build.rs` if you really need a workaround.
2. Style checker
diff --git a/external/vendor/libc/Cargo.lock b/external/vendor/libc/Cargo.lock
index 1ea497e..5b7b58c 100644
--- a/external/vendor/libc/Cargo.lock
+++ b/external/vendor/libc/Cargo.lock
@@ -4,7 +4,7 @@ version = 3
[[package]]
name = "libc"
-version = "0.2.174"
+version = "0.2.177"
dependencies = [
"rustc-std-workspace-core",
]
diff --git a/external/vendor/libc/Cargo.toml b/external/vendor/libc/Cargo.toml
index 55f98b5..d6c80a4 100644
--- a/external/vendor/libc/Cargo.toml
+++ b/external/vendor/libc/Cargo.toml
@@ -13,7 +13,7 @@
edition = "2021"
rust-version = "1.63"
name = "libc"
-version = "0.2.174"
+version = "0.2.177"
authors = ["The Rust Project Developers"]
build = "build.rs"
exclude = [
@@ -45,9 +45,8 @@ license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/libc"
[package.metadata.docs.rs]
-cargo-args = ["-Zbuild-std=core"]
-default-target = "x86_64-unknown-linux-gnu"
features = ["extra_traits"]
+default-target = "x86_64-unknown-linux-gnu"
targets = [
"aarch64-apple-darwin",
"aarch64-apple-ios",
@@ -109,6 +108,7 @@ targets = [
"powerpc64-unknown-linux-gnu",
"powerpc64-wrs-vxworks",
"powerpc64le-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-musl",
"riscv32gc-unknown-linux-gnu",
"riscv32i-unknown-none-elf",
"riscv32imac-unknown-none-elf",
@@ -157,6 +157,7 @@ targets = [
"x86_64-unknown-redox",
"x86_64-wrs-vxworks",
]
+cargo-args = ["-Zbuild-std=core"]
[features]
align = []
@@ -179,7 +180,7 @@ name = "const_fn"
path = "tests/const_fn.rs"
[dependencies.rustc-std-workspace-core]
-version = "1.0.0"
+version = "1.0.1"
optional = true
[lints.clippy]
diff --git a/external/vendor/libc/Cargo.toml.orig b/external/vendor/libc/Cargo.toml.orig
index 9ac66aa..74241d2 100644
--- a/external/vendor/libc/Cargo.toml.orig
+++ b/external/vendor/libc/Cargo.toml.orig
@@ -1,6 +1,6 @@
[package]
name = "libc"
-version = "0.2.174"
+version = "0.2.177"
keywords = ["libc", "ffi", "bindings", "operating", "system"]
categories = ["external-ffi-bindings", "no-std", "os"]
exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"]
@@ -77,6 +77,7 @@ targets = [
"powerpc64-unknown-linux-gnu",
"powerpc64-wrs-vxworks",
"powerpc64le-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-musl",
"riscv32gc-unknown-linux-gnu",
"riscv32i-unknown-none-elf",
"riscv32imac-unknown-none-elf",
@@ -128,7 +129,7 @@ targets = [
cargo-args = ["-Zbuild-std=core"]
[dependencies]
-rustc-std-workspace-core = { version = "1.0.0", optional = true }
+rustc-std-workspace-core = { version = "1.0.1", optional = true }
[features]
default = ["std"]
@@ -148,7 +149,6 @@ use_std = ['std']
[workspace]
members = [
"ctest",
- "ctest-next",
"libc-test",
]
diff --git a/external/vendor/libc/build.rs b/external/vendor/libc/build.rs
index 5e1e62c..802ea7a 100644
--- a/external/vendor/libc/build.rs
+++ b/external/vendor/libc/build.rs
@@ -17,11 +17,8 @@ const ALLOWED_CFGS: &[&str] = &[
"gnu_file_offset_bits64",
// Corresponds to `_TIME_BITS=64` in glibc
"gnu_time_bits64",
- // FIXME(ctest): this config shouldn't be needed but ctest can't parse `const extern fn`
- "libc_const_extern_fn",
"libc_deny_warnings",
"libc_thread_local",
- "libc_ctest",
// Corresponds to `__USE_TIME_BITS64` in UAPI
"linux_time_bits64",
"musl_v1_2_3",
@@ -58,7 +55,7 @@ fn main() {
let target_arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap_or_default();
// The ABI of libc used by std is backward compatible with FreeBSD 12.
- // The ABI of libc from crates.io is backward compatible with FreeBSD 11.
+ // The ABI of libc from crates.io is backward compatible with FreeBSD 12.
//
// On CI, we detect the actual FreeBSD version and match its ABI exactly,
// running tests to ensure that the ABI is correct.
@@ -69,11 +66,9 @@ fn main() {
println!("cargo:warning=setting FreeBSD version to {vers}");
vers
} else if libc_ci {
- which_freebsd().unwrap_or(11)
- } else if rustc_dep_of_std {
- 12
+ which_freebsd().unwrap_or(12)
} else {
- 11
+ 12
};
match which_freebsd {
@@ -95,7 +90,7 @@ fn main() {
let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok();
println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_MUSL_V1_2_3");
// loongarch64 and ohos have already updated
- if musl_v1_2_3 || target_os == "loongarch64" || target_env == "ohos" {
+ if musl_v1_2_3 || target_arch == "loongarch64" || target_env == "ohos" {
// FIXME(musl): enable time64 api as well
set_cfg("musl_v1_2_3");
}
@@ -112,28 +107,37 @@ fn main() {
&& target_arch != "riscv32"
&& target_arch != "x86_64"
{
- match env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS") {
- Ok(val) if val == "64" => {
- set_cfg("gnu_file_offset_bits64");
- set_cfg("linux_time_bits64");
- set_cfg("gnu_time_bits64");
- }
- Ok(val) if val != "32" => {
- panic!("RUST_LIBC_UNSTABLE_GNU_TIME_BITS may only be set to '32' or '64'")
- }
- _ => {
- match env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS") {
- Ok(val) if val == "64" => {
- set_cfg("gnu_file_offset_bits64");
- }
- Ok(val) if val != "32" => {
- panic!("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS may only be set to '32' or '64'")
- }
- _ => {}
- }
- }
+ let defaultbits = "32".to_string();
+ let (timebits, filebits) = match (
+ env::var("RUST_LIBC_UNSTABLE_GNU_TIME_BITS"),
+ env::var("RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"),
+ ) {
+ (Ok(_), Ok(_)) => panic!("Do not set both RUST_LIBC_UNSTABLE_GNU_TIME_BITS and RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS"),
+ (Err(_), Err(_)) => (defaultbits.clone(), defaultbits.clone()),
+ (Ok(tb), Err(_)) if tb == "64" => (tb.clone(), tb.clone()),
+ (Ok(tb), Err(_)) if tb == "32" => (tb, defaultbits.clone()),
+ (Ok(_), Err(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS, must be 32 or 64"),
+ (Err(_), Ok(fb)) if fb == "32" || fb == "64" => (defaultbits.clone(), fb),
+ (Err(_), Ok(_)) => panic!("Invalid value for RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32 or 64"),
+ };
+ let valid_bits = ["32", "64"];
+ assert!(
+ valid_bits.contains(&filebits.as_str()) && valid_bits.contains(&timebits.as_str()),
+ "Invalid value for RUST_LIBC_UNSTABLE_GNU_TIME_BITS or RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS, must be 32, 64 or unset"
+ );
+ assert!(
+ !(filebits == "32" && timebits == "64"),
+ "RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS must be 64 or unset if RUST_LIBC_UNSTABLE_GNU_TIME_BITS is 64"
+ );
+ if timebits == "64" {
+ set_cfg("linux_time_bits64");
+ set_cfg("gnu_time_bits64");
+ }
+ if filebits == "64" {
+ set_cfg("gnu_file_offset_bits64");
}
}
+
// On CI: deny all warnings
if libc_ci {
set_cfg("libc_deny_warnings");
@@ -144,9 +148,6 @@ fn main() {
set_cfg("libc_thread_local");
}
- // Set unconditionally when ctest is not being invoked.
- set_cfg("libc_const_extern_fn");
-
// Since Rust 1.80, configuration that isn't recognized by default needs to be provided to
// avoid warnings.
if rustc_minor_ver >= 80 {
diff --git a/external/vendor/libc/cherry-pick-stable.sh b/external/vendor/libc/cherry-pick-stable.sh
new file mode 100755
index 0000000..c338be4
--- /dev/null
+++ b/external/vendor/libc/cherry-pick-stable.sh
@@ -0,0 +1,150 @@
+#!/bin/bash
+
+set -e
+
+# Parse arguments
+DRY_RUN=false
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ --dry-run|-d)
+ DRY_RUN=true
+ shift
+ ;;
+ --help|-h)
+ echo "Usage: $0 [OPTIONS]"
+ echo ""
+ echo "Cherry-pick commits from PRs labeled 'stable-nominated' to current branch"
+ echo ""
+ echo "Options:"
+ echo " -d, --dry-run Show what would be done without making changes"
+ echo " -h, --help Show this help message"
+ exit 0
+ ;;
+ *)
+ echo "Unknown option: $1"
+ echo "Use --help for usage information"
+ exit 1
+ ;;
+ esac
+done
+
+if [ "$DRY_RUN" = true ]; then
+ echo "[DRY RUN MODE - No changes will be made]"
+ echo ""
+fi
+
+current_branch=$(git branch --show-current)
+echo "Current branch: $current_branch"
+echo "Fetching PRs with 'stable-nominated' label..."
+echo ""
+
+# Get PRs with stable-nominated label that are merged
+# Sort by merge date (oldest first) to preserve merge order and avoid conflicts
+# Format: PR number, title, merge commit SHA
+prs=$(gh pr list --state merged --label stable-nominated --json number,title,mergeCommit,mergedAt --jq 'sort_by(.mergedAt) | .[] | "\(.number)|\(.title)|\(.mergeCommit.oid)"')
+
+if [ -z "$prs" ]; then
+ echo "No PRs found with 'stable-nominated' label."
+ exit 0
+fi
+
+# Arrays to track results
+declare -a successful
+declare -a failed
+declare -a skipped
+
+echo "Found PRs to cherry-pick:"
+echo ""
+
+# Process each PR
+while IFS='|' read -r pr_number title commit_sha; do
+ echo "----------------------------------------"
+ echo "PR #${pr_number}: ${title}"
+ echo "Commit: ${commit_sha}"
+
+ # Check if commit already exists in current branch
+ if git branch --contains "$commit_sha" 2>/dev/null | grep -q "^\*"; then
+ echo "⏭ Already cherry-picked, skipping"
+ skipped+=("PR #${pr_number}: ${title}")
+ echo ""
+ continue
+ fi
+
+ # Cherry-pick with -xe flags as specified
+ if [ "$DRY_RUN" = true ]; then
+ echo "Would cherry-pick with: git cherry-pick -xe $commit_sha"
+ echo "Would add backport note: (backport https://github.com/rust-lang/libc/pull/$pr_number)"
+ successful+=("PR #${pr_number}: ${title} (${commit_sha:0:8})")
+ else
+ if git cherry-pick -xe "$commit_sha" 2>&1; then
+ # Add backport note before the cherry-pick note as per CONTRIBUTING.md
+ current_msg=$(git log -1 --format=%B)
+ backport_line="(backport https://github.com/rust-lang/libc/pull/$pr_number)"
+
+ # Insert backport line before "(cherry picked from commit" line
+ new_msg=$(echo "$current_msg" | sed "/^(cherry picked from commit/i\\
+$backport_line\\
+")
+
+ # Amend the commit with the new message
+ git commit --amend -m "$new_msg"
+
+ echo "✓ Successfully cherry-picked with backport note"
+ successful+=("PR #${pr_number}: ${title} (${commit_sha:0:8})")
+ else
+ echo "✗ Failed to cherry-pick"
+ failed+=("PR #${pr_number}: ${title} (${commit_sha:0:8})")
+ # Abort the failed cherry-pick
+ git cherry-pick --abort 2>/dev/null || true
+ fi
+ fi
+ echo ""
+done <<< "$prs"
+
+# Print summary
+echo "========================================"
+if [ "$DRY_RUN" = true ]; then
+ echo "SUMMARY (DRY RUN)"
+else
+ echo "SUMMARY"
+fi
+echo "========================================"
+echo ""
+
+if [ ${#successful[@]} -gt 0 ]; then
+ if [ "$DRY_RUN" = true ]; then
+ echo "Would cherry-pick (${#successful[@]}):"
+ else
+ echo "Successfully cherry-picked (${#successful[@]}):"
+ fi
+ for item in "${successful[@]}"; do
+ echo " ✓ $item"
+ done
+ echo ""
+fi
+
+if [ ${#skipped[@]} -gt 0 ]; then
+ echo "Skipped (${#skipped[@]}):"
+ for item in "${skipped[@]}"; do
+ echo " ⏭ $item"
+ done
+ echo ""
+fi
+
+if [ ${#failed[@]} -gt 0 ]; then
+ echo "Failed (${#failed[@]}):"
+ for item in "${failed[@]}"; do
+ echo " ✗ $item"
+ done
+ echo ""
+ if [ "$DRY_RUN" = false ]; then
+ echo "Please resolve conflicts manually and re-run if needed."
+ fi
+ exit 1
+fi
+
+if [ "$DRY_RUN" = true ]; then
+ echo "Dry run complete! Run without --dry-run to apply changes."
+else
+ echo "All done!"
+fi
diff --git a/external/vendor/libc/src/fuchsia/mod.rs b/external/vendor/libc/src/fuchsia/mod.rs
index 22f9c6f..31f13b1 100644
--- a/external/vendor/libc/src/fuchsia/mod.rs
+++ b/external/vendor/libc/src/fuchsia/mod.rs
@@ -80,7 +80,7 @@ pub type rlim_t = c_ulonglong;
// FIXME(fuchsia): why are these uninhabited types? that seems... wrong?
// Presumably these should be `()` or an `extern type` (when that stabilizes).
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum timezone {}
impl Copy for timezone {}
impl Clone for timezone {
@@ -88,7 +88,7 @@ impl Clone for timezone {
*self
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum DIR {}
impl Copy for DIR {}
impl Clone for DIR {
@@ -97,7 +97,7 @@ impl Clone for DIR {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct
impl Copy for fpos64_t {}
impl Clone for fpos64_t {
@@ -2308,7 +2308,7 @@ pub const ST_NOATIME: c_ulong = 1024;
pub const ST_NODIRATIME: c_ulong = 2048;
pub const RTLD_NEXT: *mut c_void = -1i64 as *mut c_void;
-pub const RTLD_DEFAULT: *mut c_void = 0i64 as *mut c_void;
+pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut();
pub const RTLD_NODELETE: c_int = 0x1000;
pub const RTLD_NOW: c_int = 0x2;
@@ -2452,7 +2452,7 @@ pub const EFD_SEMAPHORE: c_int = 0x1;
pub const LOG_NFACILITIES: c_int = 24;
-pub const SEM_FAILED: *mut crate::sem_t = 0 as *mut sem_t;
+pub const SEM_FAILED: *mut crate::sem_t = ptr::null_mut();
pub const RB_AUTOBOOT: c_int = 0x01234567u32 as i32;
pub const RB_HALT_SYSTEM: c_int = 0xcdef0123u32 as i32;
@@ -3250,20 +3250,20 @@ cfg_if! {
f! {
pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () {
let fd = fd as usize;
- let size = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
(*set).fds_bits[fd / size] &= !(1 << (fd % size));
return;
}
pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool {
let fd = fd as usize;
- let size = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
return ((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0;
}
pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () {
let fd = fd as usize;
- let size = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
(*set).fds_bits[fd / size] |= 1 << (fd % size);
return;
}
@@ -3281,21 +3281,21 @@ f! {
}
pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () {
- let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc
+ let 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;
()
}
pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () {
- let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]); // 32, 64 etc
+ let 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);
()
}
pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool {
- let size_in_bits = 8 * mem::size_of_val(&cpuset.bits[0]);
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]);
let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
0 != (cpuset.bits[idx] & (1 << offset))
}
@@ -3309,9 +3309,9 @@ f! {
}
pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
- if ((*cmsg).cmsg_len as size_t) < mem::size_of::<cmsghdr>() {
+ if ((*cmsg).cmsg_len as size_t) < size_of::<cmsghdr>() {
core::ptr::null_mut::<cmsghdr>()
- } else if __CMSG_NEXT(cmsg).add(mem::size_of::<cmsghdr>()) >= __MHDR_END(mhdr) {
+ } else if __CMSG_NEXT(cmsg).add(size_of::<cmsghdr>()) >= __MHDR_END(mhdr) {
core::ptr::null_mut::<cmsghdr>()
} else {
__CMSG_NEXT(cmsg).cast()
@@ -3319,64 +3319,64 @@ f! {
}
pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
- if (*mhdr).msg_controllen as size_t >= mem::size_of::<cmsghdr>() {
+ if (*mhdr).msg_controllen as size_t >= size_of::<cmsghdr>() {
(*mhdr).msg_control.cast()
} else {
core::ptr::null_mut::<cmsghdr>()
}
}
- pub {const} fn CMSG_ALIGN(len: size_t) -> size_t {
- (len + mem::size_of::<size_t>() - 1) & !(mem::size_of::<size_t>() - 1)
+ pub const fn CMSG_ALIGN(len: size_t) -> size_t {
+ (len + size_of::<size_t>() - 1) & !(size_of::<size_t>() - 1)
}
- pub {const} fn CMSG_SPACE(len: c_uint) -> c_uint {
- (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(mem::size_of::<cmsghdr>())) as c_uint
+ pub const fn CMSG_SPACE(len: c_uint) -> c_uint {
+ (CMSG_ALIGN(len as size_t) + CMSG_ALIGN(size_of::<cmsghdr>())) as c_uint
}
- pub {const} fn CMSG_LEN(len: c_uint) -> c_uint {
- (CMSG_ALIGN(mem::size_of::<cmsghdr>()) + len as size_t) as c_uint
+ pub const fn CMSG_LEN(len: c_uint) -> c_uint {
+ (CMSG_ALIGN(size_of::<cmsghdr>()) + len as size_t) as c_uint
}
}
safe_f! {
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0xff) == 0x7f
}
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
(status >> 8) & 0xff
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
status == 0xffff
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
((status & 0x7f) + 1) as i8 >= 2
}
- pub {const} fn WTERMSIG(status: c_int) -> c_int {
+ pub const fn WTERMSIG(status: c_int) -> c_int {
status & 0x7f
}
- pub {const} fn WIFEXITED(status: c_int) -> bool {
+ pub const fn WIFEXITED(status: c_int) -> bool {
(status & 0x7f) == 0
}
- pub {const} fn WEXITSTATUS(status: c_int) -> c_int {
+ pub const fn WEXITSTATUS(status: c_int) -> c_int {
(status >> 8) & 0xff
}
- pub {const} fn WCOREDUMP(status: c_int) -> bool {
+ pub const fn WCOREDUMP(status: c_int) -> bool {
(status & 0x80) != 0
}
- pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int {
+ pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int {
(cmd << 8) | (type_ & 0x00ff)
}
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -3387,14 +3387,14 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_uint {
+ pub const fn major(dev: crate::dev_t) -> c_uint {
let mut major = 0;
major |= (dev & 0x00000000000fff00) >> 8;
major |= (dev & 0xfffff00000000000) >> 32;
major as c_uint
}
- pub {const} fn minor(dev: crate::dev_t) -> c_uint {
+ pub const fn minor(dev: crate::dev_t) -> c_uint {
let mut minor = 0;
minor |= (dev & 0x00000000000000ff) >> 0;
minor |= (dev & 0x00000ffffff00000) >> 12;
@@ -3403,8 +3403,8 @@ safe_f! {
}
fn __CMSG_LEN(cmsg: *const cmsghdr) -> ssize_t {
- ((unsafe { (*cmsg).cmsg_len as size_t } + mem::size_of::<c_long>() - 1)
- & !(mem::size_of::<c_long>() - 1)) as ssize_t
+ ((unsafe { (*cmsg).cmsg_len as size_t } + size_of::<c_long>() - 1) & !(size_of::<c_long>() - 1))
+ as ssize_t
}
fn __CMSG_NEXT(cmsg: *const cmsghdr) -> *mut c_uchar {
@@ -3421,7 +3421,7 @@ fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar {
#[link(name = "fdio")]
extern "C" {}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum FILE {}
impl Copy for FILE {}
impl Clone for FILE {
@@ -3429,7 +3429,7 @@ impl Clone for FILE {
*self
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct
impl Copy for fpos_t {}
impl Clone for fpos_t {
diff --git a/external/vendor/libc/src/lib.rs b/external/vendor/libc/src/lib.rs
index a96ffc6..aa919b5 100644
--- a/external/vendor/libc/src/lib.rs
+++ b/external/vendor/libc/src/lib.rs
@@ -4,12 +4,25 @@
#![allow(
renamed_and_removed_lints, // Keep this order.
unknown_lints, // Keep this order.
- bad_style,
+ nonstandard_style,
overflowing_literals,
- improper_ctypes,
unused_macros,
unused_macro_rules,
)]
+#![warn(
+ missing_copy_implementations,
+ missing_debug_implementations,
+ safe_packed_borrows
+)]
+// Prepare for a future upgrade
+#![warn(rust_2024_compatibility)]
+// Things missing for 2024 that are blocked on MSRV or breakage
+#![allow(
+ missing_unsafe_on_extern,
+ edition_2024_expr_fragment_specifier,
+ // Allowed globally, the warning is enabled in individual modules as we work through them
+ unsafe_op_in_unsafe_fn
+)]
#![cfg_attr(libc_deny_warnings, deny(warnings))]
// Attributes needed when building as part of the standard library
#![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, no_core))]
@@ -17,14 +30,12 @@
#![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))]
// DIFF(1.0): The thread local references that raise this lint were removed in 1.0
#![cfg_attr(feature = "rustc-dep-of-std", allow(static_mut_refs))]
-// Enable extra lints:
-#![cfg_attr(feature = "extra_traits", warn(missing_debug_implementations))]
-#![warn(missing_copy_implementations, safe_packed_borrows)]
#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)]
#![cfg_attr(feature = "rustc-dep-of-std", no_core)]
#[macro_use]
mod macros;
+mod new;
cfg_if! {
if #[cfg(feature = "rustc-dep-of-std")] {
@@ -34,6 +45,9 @@ cfg_if! {
pub use core::ffi::c_void;
+#[allow(unused_imports)] // needed while the module is empty on some platforms
+pub use new::*;
+
cfg_if! {
if #[cfg(windows)] {
mod primitives;
diff --git a/external/vendor/libc/src/macros.rs b/external/vendor/libc/src/macros.rs
index a0fb7ff..6906da6 100644
--- a/external/vendor/libc/src/macros.rs
+++ b/external/vendor/libc/src/macros.rs
@@ -64,20 +64,33 @@ macro_rules! cfg_if {
/// Create an internal crate prelude with `core` reexports and common types.
macro_rules! prelude {
() => {
+ mod types;
+
/// Frequently-used types that are available on all platforms
///
/// We need to reexport the core types so this works with `rust-dep-of-std`.
mod prelude {
// Exports from `core`
#[allow(unused_imports)]
- pub(crate) use ::core::clone::Clone;
+ pub(crate) use core::clone::Clone;
+ #[allow(unused_imports)]
+ pub(crate) use core::default::Default;
+ #[allow(unused_imports)]
+ pub(crate) use core::marker::{Copy, Send, Sync};
+ #[allow(unused_imports)]
+ pub(crate) use core::option::Option;
+ #[allow(unused_imports)]
+ pub(crate) use core::prelude::v1::derive;
#[allow(unused_imports)]
- pub(crate) use ::core::marker::{Copy, Send, Sync};
+ pub(crate) use core::{fmt, hash, iter, mem, ptr};
+
#[allow(unused_imports)]
- pub(crate) use ::core::option::Option;
+ pub(crate) use fmt::Debug;
#[allow(unused_imports)]
- pub(crate) use ::core::{fmt, hash, iter, mem};
+ pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val};
+ #[allow(unused_imports)]
+ pub(crate) use crate::types::{CEnumRepr, Padding};
// Commonly used types defined in this crate
#[allow(unused_imports)]
pub(crate) use crate::{
@@ -110,9 +123,13 @@ macro_rules! s {
#[repr(C)]
#[cfg_attr(
feature = "extra_traits",
- ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
+ ::core::prelude::v1::derive(Eq, Hash, PartialEq)
+ )]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
)]
- #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
#[allow(deprecated)]
$(#[$attr])*
pub struct $i { $($field)* }
@@ -132,17 +149,21 @@ macro_rules! s_paren {
__item! {
#[cfg_attr(
feature = "extra_traits",
- ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
+ ::core::prelude::v1::derive(Eq, Hash, PartialEq)
+ )]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
)]
- #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
$(#[$attr])*
pub struct $i ( $($field)* );
}
)*);
}
-/// Implement `Clone` and `Copy` for a struct with no `extra_traits` feature, as well as `Debug`
-/// with `extra_traits` since that can always be derived.
+/// Implement `Clone`, `Copy`, and `Debug` since those can be derived, but exclude `PartialEq`,
+/// `Eq`, and `Hash`.
///
/// Most items will prefer to use [`s`].
macro_rules! s_no_extra_traits {
@@ -161,7 +182,6 @@ macro_rules! s_no_extra_traits {
pub union $i { $($field)* }
}
- #[cfg(feature = "extra_traits")]
impl ::core::fmt::Debug for $i {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_struct(::core::stringify!($i)).finish_non_exhaustive()
@@ -172,8 +192,11 @@ macro_rules! s_no_extra_traits {
(it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
__item! {
#[repr(C)]
- #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
- #[cfg_attr(feature = "extra_traits", ::core::prelude::v1::derive(Debug))]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
$(#[$attr])*
pub struct $i { $($field)* }
}
@@ -204,9 +227,13 @@ macro_rules! e {
__item! {
#[cfg_attr(
feature = "extra_traits",
- ::core::prelude::v1::derive(Debug, Eq, Hash, PartialEq)
+ ::core::prelude::v1::derive(Eq, Hash, PartialEq)
+ )]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
)]
- #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
$(#[$attr])*
pub enum $i { $($field)* }
}
@@ -221,10 +248,24 @@ macro_rules! e {
///
/// See <https://github.com/rust-lang/libc/issues/4419> for more.
macro_rules! c_enum {
- (
+ ($(
+ $(#[repr($repr:ty)])?
+ pub enum $ty_name:ident {
+ $($variant:ident $(= $value:expr)?,)+
+ }
+ )+) => {
+ $(c_enum!(@expand;
+ $(#[repr($repr)])?
+ pub enum $ty_name {
+ $($variant $(= $value)?,)+
+ }
+ );)+
+ };
+
+ (@expand;
$(#[repr($repr:ty)])?
- $ty_name:ident {
- $($variant:ident $(= $value:literal)?,)+
+ pub enum $ty_name:ident {
+ $($variant:ident $(= $value:expr)?,)+
}
) => {
pub type $ty_name = c_enum!(@ty $($repr)?);
@@ -235,7 +276,7 @@ macro_rules! c_enum {
(@one; $_ty_name:ident; $_idx:expr;) => {};
(
@one; $ty_name:ident; $default_val:expr;
- $variant:ident $(= $value:literal)?,
+ $variant:ident $(= $value:expr)?,
$($tail:tt)*
) => {
pub const $variant: $ty_name = {
@@ -250,119 +291,43 @@ macro_rules! c_enum {
c_enum!(@one; $ty_name; $variant + 1; $($tail)*);
};
- // Use a specific type if provided, otherwise default to `c_uint`
+ // Use a specific type if provided, otherwise default to `CEnumRepr`
(@ty $repr:ty) => { $repr };
- (@ty) => { $crate::c_uint };
+ (@ty) => { $crate::prelude::CEnumRepr };
}
-// This is a pretty horrible hack to allow us to conditionally mark some functions as 'const',
-// without requiring users of this macro to care "libc_const_extern_fn".
-//
-// When 'libc_const_extern_fn' is enabled, we emit the captured 'const' keyword in the expanded
-// function.
-//
-// When 'libc_const_extern_fn' is disabled, we always emit a plain 'pub unsafe extern fn'.
-// Note that the expression matched by the macro is exactly the same - this allows
-// users of this macro to work whether or not 'libc_const_extern_fn' is enabled
-//
-// Unfortunately, we need to duplicate most of this macro between the 'cfg_if' blocks.
-// This is because 'const unsafe extern fn' won't even parse on older compilers,
-// so we need to avoid emitting it at all of 'libc_const_extern_fn'.
-//
-// Specifically, moving the 'cfg_if' into the macro body will *not* work. Doing so would cause the
-// '#[cfg(libc_const_extern_fn)]' to be emitted into user code. The 'cfg' gate will not stop Rust
-// from trying to parse the 'pub const unsafe extern fn', so users would get a compiler error even
-// when the 'libc_const_extern_fn' feature is disabled.
-
-// FIXME(ctest): ctest can't handle `const extern` functions, we should be able to remove this
-// cfg completely.
-// FIXME(ctest): ctest can't handle `$(,)?` so we use `$(,)*` which isn't quite correct.
-cfg_if! {
- if #[cfg(libc_const_extern_fn)] {
- /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! f {
- ($(
- $(#[$attr:meta])*
- pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- pub $($constness)* unsafe extern "C" fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
-
- /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! safe_f {
- ($(
- $(#[$attr:meta])*
- pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- pub $($constness)* extern "C" fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
-
- /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! const_fn {
- ($(
- $(#[$attr:meta])*
- $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- $($constness)* fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
- } else {
- /// Define an `unsafe` function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! f {
- ($(
- $(#[$attr:meta])*
- pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- pub unsafe extern "C" fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
-
- /// Define a safe function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! safe_f {
- ($(
- $(#[$attr:meta])*
- pub $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- pub extern "C" fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
+/// Define a `unsafe` function.
+macro_rules! f {
+ ($(
+ $(#[$attr:meta])*
+ // Less than ideal hack to match either `fn` or `const fn`.
+ pub $(fn $i:ident)? $(const fn $const_i:ident)?
+ ($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
+ $body:block
+ )+) => {$(
+ #[inline]
+ $(#[$attr])*
+ pub $(unsafe extern "C" fn $i)? $(const unsafe extern "C" fn $const_i)?
+ ($($arg: $argty),*) -> $ret
+ $body
+ )+};
+}
- /// A nonpublic function that is const as long as `libc_const_extern_fn` is enabled.
- macro_rules! const_fn {
- ($(
- $(#[$attr:meta])*
- $({$constness:ident})* fn $i:ident($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
- $body:block
- )*) => ($(
- #[inline]
- $(#[$attr])*
- fn $i($($arg: $argty),*) -> $ret
- $body
- )*)
- }
- }
+/// Define a safe function.
+macro_rules! safe_f {
+ ($(
+ $(#[$attr:meta])*
+ // Less than ideal hack to match either `fn` or `const fn`.
+ pub $(fn $i:ident)? $(const fn $const_i:ident)?
+ ($($arg:ident: $argty:ty),* $(,)*) -> $ret:ty
+ $body:block
+ )+) => {$(
+ #[inline]
+ $(#[$attr])*
+ pub $(extern "C" fn $i)? $(const extern "C" fn $const_i)?
+ ($($arg: $argty),*) -> $ret
+ $body
+ )+};
}
macro_rules! __item {
@@ -407,20 +372,22 @@ macro_rules! deprecated_mach {
#[cfg(test)]
mod tests {
+ use crate::types::CEnumRepr;
+
#[test]
fn c_enumbasic() {
// By default, variants get sequential values.
c_enum! {
- e {
+ pub enum e {
VAR0,
VAR1,
VAR2,
}
}
- assert_eq!(VAR0, 0_u32);
- assert_eq!(VAR1, 1_u32);
- assert_eq!(VAR2, 2_u32);
+ assert_eq!(VAR0, 0 as CEnumRepr);
+ assert_eq!(VAR1, 1 as CEnumRepr);
+ assert_eq!(VAR2, 2 as CEnumRepr);
}
#[test]
@@ -428,7 +395,7 @@ mod tests {
// By default, variants get sequential values.
c_enum! {
#[repr(u16)]
- e {
+ pub enum e {
VAR0,
}
}
@@ -440,16 +407,16 @@ mod tests {
fn c_enumset_value() {
// Setting an explicit value resets the count.
c_enum! {
- e {
+ pub enum e {
VAR2 = 2,
VAR3,
VAR4,
}
}
- assert_eq!(VAR2, 2_u32);
- assert_eq!(VAR3, 3_u32);
- assert_eq!(VAR4, 4_u32);
+ assert_eq!(VAR2, 2 as CEnumRepr);
+ assert_eq!(VAR3, 3 as CEnumRepr);
+ assert_eq!(VAR4, 4 as CEnumRepr);
}
#[test]
@@ -457,7 +424,7 @@ mod tests {
// C enums always take one more than the previous value, unless set to a specific
// value. Duplicates are allowed.
c_enum! {
- e {
+ pub enum e {
VAR0,
VAR2_0 = 2,
VAR3_0,
@@ -468,12 +435,12 @@ mod tests {
}
}
- assert_eq!(VAR0, 0_u32);
- assert_eq!(VAR2_0, 2_u32);
- assert_eq!(VAR3_0, 3_u32);
- assert_eq!(VAR4_0, 4_u32);
- assert_eq!(VAR2_1, 2_u32);
- assert_eq!(VAR3_1, 3_u32);
- assert_eq!(VAR4_1, 4_u32);
+ assert_eq!(VAR0, 0 as CEnumRepr);
+ assert_eq!(VAR2_0, 2 as CEnumRepr);
+ assert_eq!(VAR3_0, 3 as CEnumRepr);
+ assert_eq!(VAR4_0, 4 as CEnumRepr);
+ assert_eq!(VAR2_1, 2 as CEnumRepr);
+ assert_eq!(VAR3_1, 3 as CEnumRepr);
+ assert_eq!(VAR4_1, 4 as CEnumRepr);
}
}
diff --git a/external/vendor/libc/src/new/bionic/mod.rs b/external/vendor/libc/src/new/bionic/mod.rs
new file mode 100644
index 0000000..644a4ab
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic/mod.rs
@@ -0,0 +1,2 @@
+mod sys;
+pub use sys::*;
diff --git a/external/vendor/libc/src/new/bionic/sys/mod.rs b/external/vendor/libc/src/new/bionic/sys/mod.rs
new file mode 100644
index 0000000..fd96d08
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic/sys/mod.rs
@@ -0,0 +1,2 @@
+mod socket;
+pub use socket::*;
diff --git a/external/vendor/libc/src/new/bionic/sys/socket.rs b/external/vendor/libc/src/new/bionic/sys/socket.rs
new file mode 100644
index 0000000..49af36f
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic/sys/socket.rs
@@ -0,0 +1,51 @@
+//! Header: `bionic/libc/include/sys/socket.h`
+
+use crate::prelude::*;
+
+s! {
+ pub struct msghdr {
+ pub msg_name: *mut c_void,
+ pub msg_namelen: crate::socklen_t,
+ pub msg_iov: *mut crate::iovec,
+ pub msg_iovlen: size_t,
+ pub msg_control: *mut c_void,
+ pub msg_controllen: size_t,
+ pub msg_flags: c_int,
+ }
+
+ pub struct cmsghdr {
+ pub cmsg_len: size_t,
+ pub cmsg_level: c_int,
+ pub cmsg_type: c_int,
+ }
+
+ pub struct ucred {
+ pub pid: crate::pid_t,
+ pub uid: crate::uid_t,
+ pub gid: crate::gid_t,
+ }
+}
+
+extern "C" {
+ pub fn recvmmsg(
+ sockfd: c_int,
+ msgvec: *mut crate::mmsghdr,
+ vlen: c_uint,
+ flags: c_int,
+ timeout: *const crate::timespec,
+ ) -> c_int;
+ pub fn sendmmsg(
+ sockfd: c_int,
+ msgvec: *const crate::mmsghdr,
+ vlen: c_uint,
+ flags: c_int,
+ ) -> c_int;
+ pub fn recvfrom(
+ socket: c_int,
+ buf: *mut c_void,
+ len: size_t,
+ flags: c_int,
+ addr: *mut crate::sockaddr,
+ addrlen: *mut crate::socklen_t,
+ ) -> ssize_t;
+}
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can.rs b/external/vendor/libc/src/new/linux_uapi/linux/can.rs
new file mode 100644
index 0000000..b9479a6
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can.rs
@@ -0,0 +1,136 @@
+//! Header: `uapi/linux/can.h`
+
+pub(crate) mod j1939;
+pub(crate) mod raw;
+
+pub use j1939::*;
+pub use raw::*;
+
+use crate::prelude::*;
+
+pub const CAN_EFF_FLAG: canid_t = 0x80000000;
+pub const CAN_RTR_FLAG: canid_t = 0x40000000;
+pub const CAN_ERR_FLAG: canid_t = 0x20000000;
+
+pub const CAN_SFF_MASK: canid_t = 0x000007FF;
+pub const CAN_EFF_MASK: canid_t = 0x1FFFFFFF;
+pub const CAN_ERR_MASK: canid_t = 0x1FFFFFFF;
+pub const CANXL_PRIO_MASK: crate::canid_t = CAN_SFF_MASK;
+
+pub type canid_t = u32;
+
+pub const CAN_SFF_ID_BITS: c_int = 11;
+pub const CAN_EFF_ID_BITS: c_int = 29;
+pub const CANXL_PRIO_BITS: c_int = CAN_SFF_ID_BITS;
+
+pub type can_err_mask_t = u32;
+
+pub const CAN_MAX_DLC: c_int = 8;
+pub const CAN_MAX_DLEN: usize = 8;
+
+pub const CANFD_MAX_DLC: c_int = 15;
+pub const CANFD_MAX_DLEN: usize = 64;
+
+pub const CANXL_MIN_DLC: c_int = 0;
+pub const CANXL_MAX_DLC: c_int = 2047;
+pub const CANXL_MAX_DLC_MASK: c_int = 0x07FF;
+pub const CANXL_MIN_DLEN: usize = 1;
+pub const CANXL_MAX_DLEN: usize = 2048;
+
+s! {
+ #[repr(align(8))]
+ pub struct can_frame {
+ pub can_id: canid_t,
+ // FIXME(1.0): this field was renamed to `len` in Linux 5.11
+ pub can_dlc: u8,
+ __pad: u8,
+ __res0: u8,
+ pub len8_dlc: u8,
+ pub data: [u8; CAN_MAX_DLEN],
+ }
+}
+
+pub const CANFD_BRS: c_int = 0x01;
+pub const CANFD_ESI: c_int = 0x02;
+pub const CANFD_FDF: c_int = 0x04;
+
+s! {
+ #[repr(align(8))]
+ pub struct canfd_frame {
+ pub can_id: canid_t,
+ pub len: u8,
+ pub flags: u8,
+ __res0: u8,
+ __res1: u8,
+ pub data: [u8; CANFD_MAX_DLEN],
+ }
+}
+
+pub const CANXL_XLF: c_int = 0x80;
+pub const CANXL_SEC: c_int = 0x01;
+
+s! {
+ #[repr(align(8))]
+ pub struct canxl_frame {
+ pub prio: canid_t,
+ pub flags: u8,
+ pub sdt: u8,
+ pub len: u16,
+ pub af: u32,
+ pub data: [u8; CANXL_MAX_DLEN],
+ }
+}
+
+pub const CAN_MTU: usize = size_of::<can_frame>();
+pub const CANFD_MTU: usize = size_of::<canfd_frame>();
+pub const CANXL_MTU: usize = size_of::<canxl_frame>();
+// FIXME(offset_of): use `core::mem::offset_of!` once that is available
+// https://github.com/rust-lang/rfcs/pull/3308
+// pub const CANXL_HDR_SIZE: usize = core::mem::offset_of!(canxl_frame, data);
+pub const CANXL_HDR_SIZE: usize = 12;
+pub const CANXL_MIN_MTU: usize = CANXL_HDR_SIZE + 64;
+pub const CANXL_MAX_MTU: usize = CANXL_MTU;
+
+pub const CAN_RAW: c_int = 1;
+pub const CAN_BCM: c_int = 2;
+pub const CAN_TP16: c_int = 3;
+pub const CAN_TP20: c_int = 4;
+pub const CAN_MCNET: c_int = 5;
+pub const CAN_ISOTP: c_int = 6;
+pub const CAN_J1939: c_int = 7;
+pub const CAN_NPROTO: c_int = 8;
+
+pub const SOL_CAN_BASE: c_int = 100;
+
+s_no_extra_traits! {
+ pub struct sockaddr_can {
+ pub can_family: crate::sa_family_t,
+ pub can_ifindex: c_int,
+ pub can_addr: __c_anonymous_sockaddr_can_can_addr,
+ }
+
+ pub union __c_anonymous_sockaddr_can_can_addr {
+ pub tp: __c_anonymous_sockaddr_can_tp,
+ pub j1939: __c_anonymous_sockaddr_can_j1939,
+ }
+}
+
+s! {
+ pub struct __c_anonymous_sockaddr_can_tp {
+ pub rx_id: canid_t,
+ pub tx_id: canid_t,
+ }
+
+ pub struct __c_anonymous_sockaddr_can_j1939 {
+ pub name: u64,
+ pub pgn: u32,
+ pub addr: u8,
+ }
+
+ pub struct can_filter {
+ pub can_id: canid_t,
+ pub can_mask: canid_t,
+ }
+}
+
+pub const CAN_INV_FILTER: canid_t = 0x20000000;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can/j1939.rs b/external/vendor/libc/src/new/linux_uapi/linux/can/j1939.rs
new file mode 100644
index 0000000..fdf425c
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can/j1939.rs
@@ -0,0 +1,60 @@
+//! `linux/can/j1939.h`
+
+pub use crate::linux::can::*;
+
+pub const J1939_MAX_UNICAST_ADDR: c_uchar = 0xfd;
+pub const J1939_IDLE_ADDR: c_uchar = 0xfe;
+pub const J1939_NO_ADDR: c_uchar = 0xff;
+pub const J1939_NO_NAME: c_ulong = 0;
+pub const J1939_PGN_REQUEST: c_uint = 0x0ea00;
+pub const J1939_PGN_ADDRESS_CLAIMED: c_uint = 0x0ee00;
+pub const J1939_PGN_ADDRESS_COMMANDED: c_uint = 0x0fed8;
+pub const J1939_PGN_PDU1_MAX: c_uint = 0x3ff00;
+pub const J1939_PGN_MAX: c_uint = 0x3ffff;
+pub const J1939_NO_PGN: c_uint = 0x40000;
+
+pub type pgn_t = u32;
+pub type priority_t = u8;
+pub type name_t = u64;
+
+pub const SOL_CAN_J1939: c_int = SOL_CAN_BASE + CAN_J1939;
+
+// FIXME(cleanup): these could use c_enum if it can accept anonymous enums.
+
+pub const SO_J1939_FILTER: c_int = 1;
+pub const SO_J1939_PROMISC: c_int = 2;
+pub const SO_J1939_SEND_PRIO: c_int = 3;
+pub const SO_J1939_ERRQUEUE: c_int = 4;
+
+pub const SCM_J1939_DEST_ADDR: c_int = 1;
+pub const SCM_J1939_DEST_NAME: c_int = 2;
+pub const SCM_J1939_PRIO: c_int = 3;
+pub const SCM_J1939_ERRQUEUE: c_int = 4;
+
+pub const J1939_NLA_PAD: c_int = 0;
+pub const J1939_NLA_BYTES_ACKED: c_int = 1;
+pub const J1939_NLA_TOTAL_SIZE: c_int = 2;
+pub const J1939_NLA_PGN: c_int = 3;
+pub const J1939_NLA_SRC_NAME: c_int = 4;
+pub const J1939_NLA_DEST_NAME: c_int = 5;
+pub const J1939_NLA_SRC_ADDR: c_int = 6;
+pub const J1939_NLA_DEST_ADDR: c_int = 7;
+
+pub const J1939_EE_INFO_NONE: c_int = 0;
+pub const J1939_EE_INFO_TX_ABORT: c_int = 1;
+pub const J1939_EE_INFO_RX_RTS: c_int = 2;
+pub const J1939_EE_INFO_RX_DPO: c_int = 3;
+pub const J1939_EE_INFO_RX_ABORT: c_int = 4;
+
+s! {
+ pub struct j1939_filter {
+ pub name: name_t,
+ pub name_mask: name_t,
+ pub pgn: pgn_t,
+ pub pgn_mask: pgn_t,
+ pub addr: u8,
+ pub addr_mask: u8,
+ }
+}
+
+pub const J1939_FILTER_MAX: c_int = 512;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can/raw.rs b/external/vendor/libc/src/new/linux_uapi/linux/can/raw.rs
new file mode 100644
index 0000000..1f92a13
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can/raw.rs
@@ -0,0 +1,15 @@
+//! `linux/can/raw.h`
+
+pub use crate::linux::can::*;
+
+pub const SOL_CAN_RAW: c_int = SOL_CAN_BASE + CAN_RAW;
+pub const CAN_RAW_FILTER_MAX: c_int = 512;
+
+// FIXME(cleanup): use `c_enum!`, which needs to be adapted to allow omitting a type.
+pub const CAN_RAW_FILTER: c_int = 1;
+pub const CAN_RAW_ERR_FILTER: c_int = 2;
+pub const CAN_RAW_LOOPBACK: c_int = 3;
+pub const CAN_RAW_RECV_OWN_MSGS: c_int = 4;
+pub const CAN_RAW_FD_FRAMES: c_int = 5;
+pub const CAN_RAW_JOIN_FILTERS: c_int = 6;
+pub const CAN_RAW_XL_FRAMES: c_int = 7;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/mod.rs b/external/vendor/libc/src/new/linux_uapi/linux/mod.rs
new file mode 100644
index 0000000..4a9c04d
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/mod.rs
@@ -0,0 +1,4 @@
+//! The `linux` directory within `include/uapi` in the Linux source tree.
+
+pub(crate) mod can;
+pub use can::*;
diff --git a/external/vendor/libc/src/new/linux_uapi/mod.rs b/external/vendor/libc/src/new/linux_uapi/mod.rs
new file mode 100644
index 0000000..e0d4e09
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/mod.rs
@@ -0,0 +1,4 @@
+//! This directory maps to `include/uapi` in the Linux source tree.
+
+pub(crate) mod linux;
+pub use linux::*;
diff --git a/external/vendor/libc/src/new/mod.rs b/external/vendor/libc/src/new/mod.rs
new file mode 100644
index 0000000..0a2a55b
--- /dev/null
+++ b/external/vendor/libc/src/new/mod.rs
@@ -0,0 +1,15 @@
+//! This module contains the future directory structure. If possible, new definitions should
+//! get added here.
+//!
+//! Eventually everything should be moved over, and we will move this directory to the top
+//! level in `src`.
+
+cfg_if! {
+ if #[cfg(target_os = "linux")] {
+ mod linux_uapi;
+ pub use linux_uapi::*;
+ } else if #[cfg(target_os = "android")] {
+ mod bionic;
+ pub use bionic::*;
+ }
+}
diff --git a/external/vendor/libc/src/primitives.rs b/external/vendor/libc/src/primitives.rs
index 668d334..80a10af 100644
--- a/external/vendor/libc/src/primitives.rs
+++ b/external/vendor/libc/src/primitives.rs
@@ -20,14 +20,7 @@ pub type c_double = f64;
cfg_if! {
if #[cfg(all(
not(windows),
- // FIXME(ctest): just use `target_vendor` = "apple"` once `ctest` supports it
- not(any(
- target_os = "macos",
- target_os = "ios",
- target_os = "tvos",
- target_os = "watchos",
- target_os = "visionos",
- )),
+ not(target_vendor = "apple"),
not(target_os = "vita"),
any(
target_arch = "aarch64",
@@ -90,35 +83,6 @@ pub type uint64_t = u64;
cfg_if! {
if #[cfg(all(target_arch = "aarch64", not(target_os = "windows")))] {
- // This introduces partial support for FFI with __int128 and
- // equivalent types on platforms where Rust's definition is validated
- // to match the standard C ABI of that platform.
- //
- // Rust does not guarantee u128/i128 are sound for FFI, and its
- // definitions are in fact known to be incompatible. [0]
- //
- // However these problems aren't fundamental, and are just platform
- // inconsistencies. Specifically at the time of this writing:
- //
- // * For x64 SysV ABIs (everything but Windows), the types are underaligned.
- // * For all Windows ABIs, Microsoft doesn't actually officially define __int128,
- // and as a result different implementations don't actually agree on its ABI.
- //
- // But on the other major aarch64 platforms (android, linux, ios, macos) we have
- // validated that rustc has the right ABI for these types. This is important because
- // aarch64 uses these types in some fundamental OS types like user_fpsimd_struct,
- // which represents saved simd registers.
- //
- // Any API which uses these types will need to `#[ignore(improper_ctypes)]`
- // until the upstream rust issue is resolved, but this at least lets us make
- // progress on platforms where this type is important.
- //
- // The list of supported architectures and OSes is intentionally very restricted,
- // as careful work needs to be done to verify that a particular platform
- // has a conformant ABI.
- //
- // [0]: https://github.com/rust-lang/rust/issues/54341
-
/// C `__int128` (a GCC extension that's part of many ABIs)
pub type __int128 = i128;
/// C `unsigned __int128` (a GCC extension that's part of many ABIs)
@@ -127,40 +91,5 @@ cfg_if! {
pub type __int128_t = i128;
/// C __uint128_t (alternate name for [__uint128][])
pub type __uint128_t = u128;
-
- // NOTE: if you add more platforms to here, you may need to cfg
- // these consts. They should always match the platform's values
- // for `sizeof(__int128)` and `_Alignof(__int128)`.
- const _SIZE_128: usize = 16;
- const _ALIGN_128: usize = 16;
-
- // FIXME(ctest): ctest doesn't handle `_` as an identifier so these tests are temporarily
- // disabled.
- // macro_rules! static_assert_eq {
- // ($a:expr, $b:expr) => {
- // const _: [(); $a] = [(); $b];
- // };
- // }
- //
- // // Since Rust doesn't officially guarantee that these types
- // // have compatible ABIs, we const assert that these values have the
- // // known size/align of the target platform's libc. If rustc ever
- // // tries to regress things, it will cause a compilation error.
- // //
- // // This isn't a bullet-proof solution because e.g. it doesn't
- // // catch the fact that llvm and gcc disagree on how x64 __int128
- // // is actually *passed* on the stack (clang underaligns it for
- // // the same reason that rustc *never* properly aligns it).
- // static_assert_eq!(core::mem::size_of::<__int128>(), _SIZE_128);
- // static_assert_eq!(core::mem::align_of::<__int128>(), _ALIGN_128);
-
- // static_assert_eq!(core::mem::size_of::<__uint128>(), _SIZE_128);
- // static_assert_eq!(core::mem::align_of::<__uint128>(), _ALIGN_128);
-
- // static_assert_eq!(core::mem::size_of::<__int128_t>(), _SIZE_128);
- // static_assert_eq!(core::mem::align_of::<__int128_t>(), _ALIGN_128);
-
- // static_assert_eq!(core::mem::size_of::<__uint128_t>(), _SIZE_128);
- // static_assert_eq!(core::mem::align_of::<__uint128_t>(), _ALIGN_128);
}
}
diff --git a/external/vendor/libc/src/psp.rs b/external/vendor/libc/src/psp.rs
index 131ef31..8235671 100644
--- a/external/vendor/libc/src/psp.rs
+++ b/external/vendor/libc/src/psp.rs
@@ -3271,18 +3271,18 @@ extern "C" {
pub fn sceRtcGetWin32FileTime(date: *mut ScePspDateTime, time: *mut u64) -> i32;
pub fn sceRtcParseDateTime(dest_tick: *mut u64, date_string: *const u8) -> i32;
pub fn sceRtcFormatRFC3339(
- psz_date_time: *mut char,
+ psz_date_time: *mut c_char,
p_utc: *const u64,
time_zone_minutes: i32,
) -> i32;
- pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32;
+ pub fn sceRtcFormatRFC3339LocalTime(psz_date_time: *mut c_char, p_utc: *const u64) -> i32;
pub fn sceRtcParseRFC3339(p_utc: *mut u64, psz_date_time: *const u8) -> i32;
pub fn sceRtcFormatRFC2822(
- psz_date_time: *mut char,
+ psz_date_time: *mut c_char,
p_utc: *const u64,
time_zone_minutes: i32,
) -> i32;
- pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut char, p_utc: *const u64) -> i32;
+ pub fn sceRtcFormatRFC2822LocalTime(psz_date_time: *mut c_char, p_utc: *const u64) -> i32;
pub fn sceIoOpen(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid;
pub fn sceIoOpenAsync(file: *const u8, flags: i32, permissions: IoPermissions) -> SceUid;
diff --git a/external/vendor/libc/src/solid/mod.rs b/external/vendor/libc/src/solid/mod.rs
index 965c5bb..40d6a9d 100644
--- a/external/vendor/libc/src/solid/mod.rs
+++ b/external/vendor/libc/src/solid/mod.rs
@@ -395,7 +395,7 @@ pub const SIGUSR1: c_int = 30;
pub const SIGUSR2: c_int = 31;
pub const SIGPWR: c_int = 32;
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum FILE {}
impl Copy for FILE {}
impl Clone for FILE {
@@ -403,7 +403,7 @@ impl Clone for FILE {
*self
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum fpos_t {}
impl Copy for fpos_t {}
impl Clone for fpos_t {
diff --git a/external/vendor/libc/src/teeos/mod.rs b/external/vendor/libc/src/teeos/mod.rs
index 9929e70..fd9c0b1 100644
--- a/external/vendor/libc/src/teeos/mod.rs
+++ b/external/vendor/libc/src/teeos/mod.rs
@@ -99,7 +99,7 @@ pub struct pthread_attr_t {
#[repr(C)]
pub struct cpu_set_t {
- bits: [c_ulong; 128 / core::mem::size_of::<c_ulong>()],
+ bits: [c_ulong; 128 / size_of::<c_ulong>()],
}
#[repr(C)]
@@ -137,7 +137,7 @@ pub struct mbstate_t {
#[repr(C)]
pub struct sem_t {
- pub __val: [c_int; 4 * core::mem::size_of::<c_long>() / core::mem::size_of::<c_int>()],
+ pub __val: [c_int; 4 * size_of::<c_long>() / size_of::<c_int>()],
}
#[repr(C)]
@@ -1342,7 +1342,7 @@ pub fn errno() -> c_int {
pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int {
let mut s: u32 = 0;
- let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]);
+ let size_of_mask = size_of_val(&cpuset.bits[0]);
for i in cpuset.bits[..(size / size_of_mask)].iter() {
s += i.count_ones();
@@ -1351,5 +1351,5 @@ pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int {
}
pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int {
- CPU_COUNT_S(core::mem::size_of::<cpu_set_t>(), cpuset)
+ CPU_COUNT_S(size_of::<cpu_set_t>(), cpuset)
}
diff --git a/external/vendor/libc/src/types.rs b/external/vendor/libc/src/types.rs
new file mode 100644
index 0000000..7d49a42
--- /dev/null
+++ b/external/vendor/libc/src/types.rs
@@ -0,0 +1,39 @@
+//! Platform-agnostic support types.
+
+use core::mem::MaybeUninit;
+
+use crate::prelude::*;
+
+/// A transparent wrapper over `MaybeUninit<T>` to represent uninitialized padding
+/// while providing `Default`.
+// This is restricted to `Copy` types since that's a loose indicator that zeros is actually
+// a valid bitpattern. There is no technical reason this is required, though, so it could be
+// lifted in the future if it becomes a problem.
+#[allow(unused)]
+#[repr(transparent)]
+#[derive(Clone, Copy)]
+pub(crate) struct Padding<T: Copy>(MaybeUninit<T>);
+
+impl<T: Copy> Default for Padding<T> {
+ fn default() -> Self {
+ Self(MaybeUninit::zeroed())
+ }
+}
+
+impl<T: Copy> fmt::Debug for Padding<T> {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ // Taken frmo `MaybeUninit`'s debug implementation
+ // NB: there is no `.pad_fmt` so we can't use a simpler `format_args!("Padding<{..}>").
+ let full_name = core::any::type_name::<Self>();
+ let prefix_len = full_name.find("Padding").unwrap();
+ f.pad(&full_name[prefix_len..])
+ }
+}
+
+/// The default repr type used for C style enums in Rust.
+#[cfg(target_env = "msvc")]
+#[allow(unused)]
+pub(crate) type CEnumRepr = c_int;
+#[cfg(not(target_env = "msvc"))]
+#[allow(unused)]
+pub(crate) type CEnumRepr = c_uint;
diff --git a/external/vendor/libc/src/unix/aix/mod.rs b/external/vendor/libc/src/unix/aix/mod.rs
index 3f8145d..b6d1af5 100644
--- a/external/vendor/libc/src/unix/aix/mod.rs
+++ b/external/vendor/libc/src/unix/aix/mod.rs
@@ -49,6 +49,7 @@ pub type rlim64_t = c_ulonglong;
pub type sem_t = c_int;
pub type pollset_t = c_int;
+pub type sctp_assoc_t = c_uint;
pub type pthread_rwlockattr_t = *mut c_void;
pub type pthread_condattr_t = *mut c_void;
@@ -463,9 +464,9 @@ s! {
pub st_gid: crate::gid_t,
pub st_rdev: dev_t,
pub st_ssize: c_int,
- pub st_atim: st_timespec,
- pub st_mtim: st_timespec,
- pub st_ctim: st_timespec,
+ pub st_atim: crate::timespec,
+ pub st_mtim: crate::timespec,
+ pub st_ctim: crate::timespec,
pub st_blksize: blksize_t,
pub st_blocks: blkcnt_t,
pub st_vfstype: c_int,
@@ -825,20 +826,20 @@ pub const DLT_PPP: c_int = 0x17;
pub const DLT_FDDI: c_int = 0xf;
pub const DLT_ATM: c_int = 0x25;
pub const DLT_IPOIB: c_int = 0xc7;
-pub const BIOCSETF: c_long = -2146418073;
-pub const BIOCGRTIMEOUT: c_long = 1074807406;
-pub const BIOCGBLEN: c_long = 1074020966;
-pub const BIOCSBLEN: c_long = -1073462682;
-pub const BIOCFLUSH: c_long = 536887912;
-pub const BIOCPROMISC: c_long = 536887913;
-pub const BIOCGDLT: c_long = 1074020970;
-pub const BIOCSRTIMEOUT: c_long = -2146418067;
-pub const BIOCGSTATS: c_long = 1074283119;
-pub const BIOCIMMEDIATE: c_long = -2147204496;
-pub const BIOCVERSION: c_long = 1074020977;
-pub const BIOCSDEVNO: c_long = 536887922;
-pub const BIOCGETIF: c_long = 1075855979;
-pub const BIOCSETIF: c_long = -2145369492;
+pub const BIOCSETF: c_int = 0x80104267;
+pub const BIOCGRTIMEOUT: c_int = 0x4010426e;
+pub const BIOCGBLEN: c_int = 0x40044266;
+pub const BIOCSBLEN: c_int = 0xc0044266;
+pub const BIOCFLUSH: c_int = 0x20004268;
+pub const BIOCPROMISC: c_int = 0x20004269;
+pub const BIOCGDLT: c_int = 0x4004426a;
+pub const BIOCSRTIMEOUT: c_int = 0x8010426d;
+pub const BIOCGSTATS: c_int = 0x4008426f;
+pub const BIOCIMMEDIATE: c_int = 0x80044270;
+pub const BIOCVERSION: c_int = 0x40044271;
+pub const BIOCSDEVNO: c_int = 0x20004272;
+pub const BIOCGETIF: c_int = 0x4020426b;
+pub const BIOCSETIF: c_int = 0x8020426c;
pub const BPF_ABS: c_int = 32;
pub const BPF_ADD: c_int = 0;
pub const BPF_ALIGNMENT: c_ulong = 4;
@@ -1159,10 +1160,6 @@ pub const NFSMNT_ACDIRMAX: c_int = 0x0800;
// rpcsvc/rstat.h
pub const CPUSTATES: c_int = 4;
-// search.h
-pub const FIND: c_int = 0;
-pub const ENTER: c_int = 1;
-
// semaphore.h
pub const SEM_FAILED: *mut sem_t = -1isize as *mut crate::sem_t;
@@ -1264,12 +1261,11 @@ pub const ENOLCK: c_int = 49;
pub const ENOCONNECT: c_int = 50;
pub const ESTALE: c_int = 52;
pub const EDIST: c_int = 53;
-pub const EWOULDBLOCK: c_int = EAGAIN;
+pub const EWOULDBLOCK: c_int = 54;
pub const EINPROGRESS: c_int = 55;
pub const EALREADY: c_int = 56;
pub const ENOTSOCK: c_int = 57;
pub const EDESTADDRREQ: c_int = 58;
-pub const EDESTADDREQ: c_int = EDESTADDRREQ;
pub const EMSGSIZE: c_int = 59;
pub const EPROTOTYPE: c_int = 60;
pub const ENOPROTOOPT: c_int = 61;
@@ -1298,7 +1294,7 @@ pub const EPROCLIM: c_int = 83;
pub const EUSERS: c_int = 84;
pub const ELOOP: c_int = 85;
pub const ENAMETOOLONG: c_int = 86;
-pub const ENOTEMPTY: c_int = EEXIST;
+pub const ENOTEMPTY: c_int = 87;
pub const EDQUOT: c_int = 88;
pub const ECORRUPT: c_int = 89;
pub const ESYSERROR: c_int = 90;
@@ -1321,7 +1317,6 @@ pub const EBADMSG: c_int = 120;
pub const EPROTO: c_int = 121;
pub const ENODATA: c_int = 122;
pub const ENOSTR: c_int = 123;
-pub const ECLONEME: c_int = ERESTART;
pub const ENOTSUP: c_int = 124;
pub const EMULTIHOP: c_int = 125;
pub const ENOLINK: c_int = 126;
@@ -1364,22 +1359,22 @@ pub const Q_SETQUOTA: c_int = 0x400;
// sys/ioctl.h
pub const IOCPARM_MASK: c_int = 0x7f;
-pub const IOC_VOID: c_long = 536870912;
-pub const IOC_OUT: c_long = 1073741824;
-pub const IOC_IN: c_long = -2147483648;
-pub const IOC_INOUT: c_long = IOC_IN | IOC_OUT;
-pub const FIOCLEX: c_long = 536897025;
-pub const FIONCLEX: c_long = 536897026;
-pub const FIONREAD: c_long = 1074030207;
-pub const FIONBIO: c_long = -2147195266;
-pub const FIOASYNC: c_long = -2147195267;
-pub const FIOSETOWN: c_long = -2147195268;
-pub const FIOGETOWN: c_long = 1074030203;
-pub const TIOCGETD: c_long = 1074033664;
-pub const TIOCSETD: c_long = -2147191807;
-pub const TIOCHPCL: c_long = 536900610;
-pub const TIOCMODG: c_long = 1074033667;
-pub const TIOCMODS: c_long = -2147191804;
+pub const IOC_VOID: c_int = 0x20000000;
+pub const IOC_OUT: c_int = 0x40000000;
+pub const IOC_IN: c_int = 0x40000000 << 1;
+pub const IOC_INOUT: c_int = IOC_IN | IOC_OUT;
+pub const FIOCLEX: c_int = 0x20006601;
+pub const FIONCLEX: c_int = 0x20006602;
+pub const FIONREAD: c_int = 0x4004667f;
+pub const FIONBIO: c_int = 0x8004667e;
+pub const FIOASYNC: c_int = 0x8004667d;
+pub const FIOSETOWN: c_int = 0x8004667c;
+pub const FIOGETOWN: c_int = 0x4004667b;
+pub const TIOCGETD: c_int = 0x40047400;
+pub const TIOCSETD: c_int = 0x80047401;
+pub const TIOCHPCL: c_int = 0x20007402;
+pub const TIOCMODG: c_int = 0x40047403;
+pub const TIOCMODS: c_int = 0x80047404;
pub const TIOCM_LE: c_int = 0x1;
pub const TIOCM_DTR: c_int = 0x2;
pub const TIOCM_RTS: c_int = 0x4;
@@ -1391,46 +1386,46 @@ pub const TIOCM_CD: c_int = 0x40;
pub const TIOCM_RNG: c_int = 0x80;
pub const TIOCM_RI: c_int = 0x80;
pub const TIOCM_DSR: c_int = 0x100;
-pub const TIOCGETP: c_long = 1074164744;
-pub const TIOCSETP: c_long = -2147060727;
-pub const TIOCSETN: c_long = -2147060726;
-pub const TIOCEXCL: c_long = 536900621;
-pub const TIOCNXCL: c_long = 536900622;
-pub const TIOCFLUSH: c_long = -2147191792;
-pub const TIOCSETC: c_long = -2147060719;
-pub const TIOCGETC: c_long = 1074164754;
+pub const TIOCGETP: c_int = 0x40067408;
+pub const TIOCSETP: c_int = 0x80067409;
+pub const TIOCSETN: c_int = 0x8006740a;
+pub const TIOCEXCL: c_int = 0x2000740d;
+pub const TIOCNXCL: c_int = 0x2000740e;
+pub const TIOCFLUSH: c_int = 0x80047410;
+pub const TIOCSETC: c_int = 0x80067411;
+pub const TIOCGETC: c_int = 0x40067412;
pub const TANDEM: c_int = 0x1;
pub const CBREAK: c_int = 0x2;
pub const LCASE: c_int = 0x4;
pub const MDMBUF: c_int = 0x800000;
pub const XTABS: c_int = 0xc00;
-pub const SIOCADDMULTI: c_long = -2145359567;
-pub const SIOCADDRT: c_long = -2143784438;
-pub const SIOCDARP: c_long = -2142476000;
-pub const SIOCDELMULTI: c_long = -2145359566;
-pub const SIOCDELRT: c_long = -2143784437;
-pub const SIOCDIFADDR: c_long = -2144835303;
-pub const SIOCGARP: c_long = -1068734170;
-pub const SIOCGIFADDR: c_long = -1071093471;
-pub const SIOCGIFBRDADDR: c_long = -1071093469;
-pub const SIOCGIFCONF: c_long = -1072666299;
-pub const SIOCGIFDSTADDR: c_long = -1071093470;
-pub const SIOCGIFFLAGS: c_long = -1071093487;
-pub const SIOCGIFHWADDR: c_long = -1068209771;
-pub const SIOCGIFMETRIC: c_long = -1071093481;
-pub const SIOCGIFMTU: c_long = -1071093418;
-pub const SIOCGIFNETMASK: c_long = -1071093467;
-pub const SIOCSARP: c_long = -2142476002;
-pub const SIOCSIFADDR: c_long = -2144835316;
-pub const SIOCSIFBRDADDR: c_long = -2144835309;
-pub const SIOCSIFDSTADDR: c_long = -2144835314;
-pub const SIOCSIFFLAGS: c_long = -2144835312;
-pub const SIOCSIFMETRIC: c_long = -2144835304;
-pub const SIOCSIFMTU: c_long = -2144835240;
-pub const SIOCSIFNETMASK: c_long = -2144835306;
-pub const TIOCUCNTL: c_long = -2147191706;
-pub const TIOCCONS: c_long = -2147191710;
-pub const TIOCPKT: c_long = -2147191696;
+pub const SIOCADDMULTI: c_int = 0x80206931;
+pub const SIOCADDRT: c_int = 0x8038720a;
+pub const SIOCDARP: c_int = 0x804c6920;
+pub const SIOCDELMULTI: c_int = 0x80206932;
+pub const SIOCDELRT: c_int = 0x8038720b;
+pub const SIOCDIFADDR: c_int = 0x80286919;
+pub const SIOCGARP: c_int = 0xc04c6926;
+pub const SIOCGIFADDR: c_int = 0xc0286921;
+pub const SIOCGIFBRDADDR: c_int = 0xc0286923;
+pub const SIOCGIFCONF: c_int = 0xc0106945;
+pub const SIOCGIFDSTADDR: c_int = 0xc0286922;
+pub const SIOCGIFFLAGS: c_int = 0xc0286911;
+pub const SIOCGIFHWADDR: c_int = 0xc0546995;
+pub const SIOCGIFMETRIC: c_int = 0xc0286917;
+pub const SIOCGIFMTU: c_int = 0xc0286956;
+pub const SIOCGIFNETMASK: c_int = 0xc0286925;
+pub const SIOCSARP: c_int = 0x804c691e;
+pub const SIOCSIFADDR: c_int = 0x8028690c;
+pub const SIOCSIFBRDADDR: c_int = 0x80286913;
+pub const SIOCSIFDSTADDR: c_int = 0x8028690e;
+pub const SIOCSIFFLAGS: c_int = 0x80286910;
+pub const SIOCSIFMETRIC: c_int = 0x80286918;
+pub const SIOCSIFMTU: c_int = 0x80286958;
+pub const SIOCSIFNETMASK: c_int = 0x80286916;
+pub const TIOCUCNTL: c_int = 0x80047466;
+pub const TIOCCONS: c_int = 0x80047462;
+pub const TIOCPKT: c_int = 0x80047470;
pub const TIOCPKT_DATA: c_int = 0;
pub const TIOCPKT_FLUSHREAD: c_int = 1;
pub const TIOCPKT_FLUSHWRITE: c_int = 2;
@@ -2094,31 +2089,31 @@ pub const TCOON: c_int = 1;
pub const TCIOFF: c_int = 2;
pub const TCION: c_int = 3;
pub const TIOC: c_int = 0x5400;
-pub const TIOCGWINSZ: c_long = 1074295912;
-pub const TIOCSWINSZ: c_long = -2146929561;
-pub const TIOCLBIS: c_long = -2147191681;
-pub const TIOCLBIC: c_long = -2147191682;
-pub const TIOCLSET: c_long = -2147191683;
-pub const TIOCLGET: c_long = 1074033788;
-pub const TIOCSBRK: c_long = 536900731;
-pub const TIOCCBRK: c_long = 536900730;
-pub const TIOCSDTR: c_long = 536900729;
-pub const TIOCCDTR: c_long = 536900728;
-pub const TIOCSLTC: c_long = -2147060619;
-pub const TIOCGLTC: c_long = 1074164852;
-pub const TIOCOUTQ: c_long = 1074033779;
-pub const TIOCNOTTY: c_long = 536900721;
-pub const TIOCSTOP: c_long = 536900719;
-pub const TIOCSTART: c_long = 536900718;
-pub const TIOCGPGRP: c_long = 1074033783;
-pub const TIOCSPGRP: c_long = -2147191690;
-pub const TIOCGSID: c_long = 1074033736;
-pub const TIOCSTI: c_long = -2147388302;
-pub const TIOCMSET: c_long = -2147191699;
-pub const TIOCMBIS: c_long = -2147191700;
-pub const TIOCMBIC: c_long = -2147191701;
-pub const TIOCMGET: c_long = 1074033770;
-pub const TIOCREMOTE: c_long = -2147191703;
+pub const TIOCGWINSZ: c_int = 0x40087468;
+pub const TIOCSWINSZ: c_int = 0x80087467;
+pub const TIOCLBIS: c_int = 0x8004747f;
+pub const TIOCLBIC: c_int = 0x8004747e;
+pub const TIOCLSET: c_int = 0x8004747d;
+pub const TIOCLGET: c_int = 0x4004747c;
+pub const TIOCSBRK: c_int = 0x2000747b;
+pub const TIOCCBRK: c_int = 0x2000747a;
+pub const TIOCSDTR: c_int = 0x20007479;
+pub const TIOCCDTR: c_int = 0x20007478;
+pub const TIOCSLTC: c_int = 0x80067475;
+pub const TIOCGLTC: c_int = 0x40067474;
+pub const TIOCOUTQ: c_int = 0x40047473;
+pub const TIOCNOTTY: c_int = 0x20007471;
+pub const TIOCSTOP: c_int = 0x2000746f;
+pub const TIOCSTART: c_int = 0x2000746e;
+pub const TIOCGPGRP: c_int = 0x40047477;
+pub const TIOCSPGRP: c_int = 0x80047476;
+pub const TIOCGSID: c_int = 0x40047448;
+pub const TIOCSTI: c_int = 0x80017472;
+pub const TIOCMSET: c_int = 0x8004746d;
+pub const TIOCMBIS: c_int = 0x8004746c;
+pub const TIOCMBIC: c_int = 0x8004746b;
+pub const TIOCMGET: c_int = 0x4004746a;
+pub const TIOCREMOTE: c_int = 0x80047469;
// sys/user.h
pub const MAXCOMLEN: c_int = 32;
@@ -2436,7 +2431,7 @@ pub const ACCOUNTING: c_short = 9;
f! {
pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
- if (*mhdr).msg_controllen as usize >= mem::size_of::<cmsghdr>() {
+ if (*mhdr).msg_controllen as usize >= size_of::<cmsghdr>() {
(*mhdr).msg_control as *mut cmsghdr
} else {
core::ptr::null_mut::<cmsghdr>()
@@ -2447,7 +2442,7 @@ f! {
if cmsg.is_null() {
CMSG_FIRSTHDR(mhdr)
} else {
- if (cmsg as usize + (*cmsg).cmsg_len as usize + mem::size_of::<cmsghdr>())
+ if (cmsg as usize + (*cmsg).cmsg_len as usize + size_of::<cmsghdr>())
> ((*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize)
{
core::ptr::null_mut::<cmsghdr>()
@@ -2459,15 +2454,15 @@ f! {
}
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).offset(mem::size_of::<cmsghdr>() as isize)
+ (cmsg as *mut c_uchar).offset(size_of::<cmsghdr>() as isize)
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- mem::size_of::<cmsghdr>() as c_uint + length
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ size_of::<cmsghdr>() as c_uint + length
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- mem::size_of::<cmsghdr>() as c_uint + length
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ size_of::<cmsghdr>() as c_uint + length
}
pub fn FD_ZERO(set: *mut fd_set) -> () {
@@ -2477,32 +2472,32 @@ f! {
}
pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () {
- let bits = mem::size_of::<c_long>() * 8;
+ let bits = size_of::<c_long>() * 8;
let fd = fd as usize;
(*set).fds_bits[fd / bits] |= 1 << (fd % bits);
return;
}
pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () {
- let bits = mem::size_of::<c_long>() * 8;
+ let bits = size_of::<c_long>() * 8;
let fd = fd as usize;
(*set).fds_bits[fd / bits] &= !(1 << (fd % bits));
return;
}
pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool {
- let bits = mem::size_of::<c_long>() * 8;
+ let bits = size_of::<c_long>() * 8;
let fd = fd as usize;
return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0;
}
}
safe_f! {
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & _W_STOPPED) != 0
}
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
if WIFSTOPPED(status) {
(((status as c_uint) >> 8) & 0xff) as c_int
} else {
@@ -2510,11 +2505,11 @@ safe_f! {
}
}
- pub {const} fn WIFEXITED(status: c_int) -> bool {
+ pub const fn WIFEXITED(status: c_int) -> bool {
(status & 0xFF) == 0
}
- pub {const} fn WEXITSTATUS(status: c_int) -> c_int {
+ pub const fn WEXITSTATUS(status: c_int) -> c_int {
if WIFEXITED(status) {
(((status as c_uint) >> 8) & 0xff) as c_int
} else {
@@ -2522,11 +2517,11 @@ safe_f! {
}
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
!WIFEXITED(status) && !WIFSTOPPED(status)
}
- pub {const} fn WTERMSIG(status: c_int) -> c_int {
+ pub const fn WTERMSIG(status: c_int) -> c_int {
if WIFSIGNALED(status) {
(((status as c_uint) >> 16) & 0xff) as c_int
} else {
@@ -2534,26 +2529,26 @@ safe_f! {
}
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
(status & WCONTINUED) != 0
}
// AIX doesn't have native WCOREDUMP.
- pub {const} fn WCOREDUMP(_status: c_int) -> bool {
+ pub const fn WCOREDUMP(_status: c_int) -> bool {
false
}
- pub {const} fn major(dev: crate::dev_t) -> c_uint {
+ pub const fn major(dev: crate::dev_t) -> c_uint {
let x = dev >> 16;
x as c_uint
}
- pub {const} fn minor(dev: crate::dev_t) -> c_uint {
+ pub const fn minor(dev: crate::dev_t) -> c_uint {
let y = dev & 0xFFFF;
y as c_uint
}
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -2933,7 +2928,7 @@ extern "C" {
name: *const c_char,
grp: *mut crate::group,
buf: *mut c_char,
- buflen: c_int,
+ buflen: size_t,
result: *mut *mut crate::group,
) -> c_int;
pub fn getgrset(user: *const c_char) -> *mut c_char;
@@ -2949,6 +2944,7 @@ extern "C" {
flags: c_int,
) -> c_int;
pub fn getpagesize() -> c_int;
+ pub fn getpeereid(socket: c_int, euid: *mut crate::uid_t, egid: *mut crate::gid_t) -> c_int;
pub fn getpriority(which: c_int, who: crate::id_t) -> c_int;
pub fn getpwent() -> *mut crate::passwd;
#[link_name = "_posix_getpwnam_r"]
@@ -3035,6 +3031,7 @@ extern "C" {
pub fn mincore(addr: caddr_t, len: size_t, vec: *mut c_char) -> c_int;
pub fn mkfifoat(dirfd: c_int, pathname: *const c_char, mode: mode_t) -> c_int;
pub fn mknodat(dirfd: c_int, pathname: *const c_char, mode: mode_t, dev: dev_t) -> c_int;
+ pub fn mount(device: *const c_char, path: *const c_char, flags: c_int) -> c_int;
pub fn mprotect(addr: *mut c_void, len: size_t, prot: c_int) -> c_int;
pub fn mq_close(mqd: crate::mqd_t) -> c_int;
pub fn mq_getattr(mqd: crate::mqd_t, attr: *mut crate::mq_attr) -> c_int;
@@ -3204,6 +3201,13 @@ extern "C" {
addr: *mut crate::sockaddr,
addrlen: *mut crate::socklen_t,
) -> ssize_t;
+ pub fn recvmmsg(
+ sockfd: c_int,
+ msgvec: *mut crate::mmsghdr,
+ vlen: c_uint,
+ flags: c_int,
+ timeout: *mut crate::timespec,
+ ) -> c_int;
// AIX header socket.h maps recvmsg() to nrecvmsg().
#[link_name = "nrecvmsg"]
pub fn recvmsg(sockfd: c_int, msg: *mut msghdr, flags: c_int) -> ssize_t;
@@ -3234,6 +3238,14 @@ extern "C" {
policy: c_int,
param: *const crate::sched_param,
) -> c_int;
+ pub fn sctp_opt_info(
+ sd: c_int,
+ id: crate::sctp_assoc_t,
+ opt: c_int,
+ arg_size: *mut c_void,
+ size: *mut size_t,
+ ) -> c_int;
+ pub fn sctp_peeloff(s: c_int, id: *mut c_uint) -> c_int;
pub fn seed48(xseed: *mut c_ushort) -> *mut c_ushort;
pub fn seekdir(dirp: *mut crate::DIR, loc: c_long);
pub fn sem_close(sem: *mut sem_t) -> c_int;
@@ -3247,19 +3259,22 @@ extern "C" {
pub fn semget(key: crate::key_t, nsems: c_int, semflag: c_int) -> c_int;
pub fn semop(semid: c_int, sops: *mut sembuf, nsops: size_t) -> c_int;
pub fn send_file(socket: *mut c_int, iobuf: *mut sf_parms, flags: c_uint) -> ssize_t;
+ pub fn sendmmsg(sockfd: c_int, msgvec: *mut mmsghdr, vlen: c_uint, flags: c_int) -> c_int;
// AIX header socket.h maps sendmsg() to nsendmsg().
#[link_name = "nsendmsg"]
pub fn sendmsg(sockfd: c_int, msg: *const msghdr, flags: c_int) -> ssize_t;
pub fn setcontext(ucp: *const ucontext_t) -> c_int;
- pub fn setdomainname(name: *mut c_char, len: c_int) -> c_int;
- pub fn setgroups(ngroups: c_int, ptr: *mut crate::gid_t) -> c_int;
+ pub fn setdomainname(name: *const c_char, len: c_int) -> c_int;
+ pub fn setgroups(ngroups: c_int, ptr: *const crate::gid_t) -> c_int;
pub fn setgrent();
+ pub fn sethostid(hostid: c_int) -> c_int;
+ pub fn sethostname(name: *const c_char, len: c_int) -> c_int;
pub fn setmntent(filename: *const c_char, ty: *const c_char) -> *mut crate::FILE;
pub fn setpriority(which: c_int, who: id_t, priority: c_int) -> c_int;
pub fn setpwent();
pub fn setrlimit(resource: c_int, rlim: *const crate::rlimit) -> c_int;
pub fn setrlimit64(resource: c_int, rlim: *const rlimit64) -> c_int;
- pub fn settimeofday(tv: *mut crate::timeval, tz: *mut crate::timezone) -> c_int;
+ pub fn settimeofday(tv: *const crate::timeval, tz: *const crate::timezone) -> c_int;
pub fn setitimer(
which: c_int,
new_value: *const crate::itimerval,
@@ -3282,14 +3297,15 @@ extern "C" {
pub fn shmget(key: key_t, size: size_t, shmflg: c_int) -> c_int;
pub fn shm_open(name: *const c_char, oflag: c_int, mode: mode_t) -> c_int;
pub fn shm_unlink(name: *const c_char) -> c_int;
+ pub fn splice(socket1: c_int, socket2: c_int, flags: c_int) -> c_int;
pub fn srand(seed: c_uint);
pub fn srand48(seed: c_long);
pub fn stat64(path: *const c_char, buf: *mut stat64) -> c_int;
pub fn stat64at(dirfd: c_int, path: *const c_char, buf: *mut stat64, flags: c_int) -> c_int;
- pub fn statfs(path: *mut c_char, buf: *mut statfs) -> c_int;
- pub fn statfs64(path: *mut c_char, buf: *mut statfs64) -> c_int;
+ pub fn statfs(path: *const c_char, buf: *mut statfs) -> c_int;
+ pub fn statfs64(path: *const c_char, buf: *mut statfs64) -> c_int;
pub fn statvfs64(path: *const c_char, buf: *mut statvfs64) -> c_int;
- pub fn statx(path: *mut c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int;
+ pub fn statx(path: *const c_char, buf: *mut stat, length: c_int, command: c_int) -> c_int;
pub fn strcasecmp_l(
string1: *const c_char,
string2: *const c_char,
@@ -3311,8 +3327,8 @@ extern "C" {
pub fn strptime(s: *const c_char, format: *const c_char, tm: *mut crate::tm) -> *mut c_char;
pub fn strsep(string: *mut *mut c_char, delim: *const c_char) -> *mut c_char;
pub fn swapcontext(uocp: *mut ucontext_t, ucp: *const ucontext_t) -> c_int;
- pub fn swapoff(puath: *mut c_char) -> c_int;
- pub fn swapon(path: *mut c_char) -> c_int;
+ pub fn swapoff(path: *const c_char) -> c_int;
+ pub fn swapon(path: *const c_char) -> c_int;
pub fn sync();
pub fn telldir(dirp: *mut crate::DIR) -> c_long;
pub fn timer_create(
@@ -3333,7 +3349,7 @@ extern "C" {
pub fn uname(buf: *mut crate::utsname) -> c_int;
pub fn updwtmp(file: *const c_char, u: *const utmp);
pub fn uselocale(loc: crate::locale_t) -> crate::locale_t;
- pub fn utmpname(file: *mut c_char) -> c_int;
+ pub fn utmpname(file: *const c_char) -> c_int;
pub fn utimensat(
dirfd: c_int,
path: *const c_char,
diff --git a/external/vendor/libc/src/unix/aix/powerpc64.rs b/external/vendor/libc/src/unix/aix/powerpc64.rs
index f379e2d..ba4ddc0 100644
--- a/external/vendor/libc/src/unix/aix/powerpc64.rs
+++ b/external/vendor/libc/src/unix/aix/powerpc64.rs
@@ -1,6 +1,12 @@
use crate::off_t;
use crate::prelude::*;
+// Define lock_data_instrumented as an empty enum
+missing! {
+ #[derive(Debug)]
+ pub enum lock_data_instrumented {}
+}
+
s! {
pub struct sigset_t {
pub ss_set: [c_ulong; 4],
@@ -29,7 +35,7 @@ s! {
pub f_files: crate::fsfilcnt_t,
pub f_ffree: crate::fsfilcnt_t,
pub f_favail: crate::fsfilcnt_t,
- pub f_fsid: crate::fsid_t,
+ pub f_fsid: c_ulong,
pub f_basetype: [c_char; 16],
pub f_flag: c_ulong,
pub f_namemax: c_ulong,
@@ -63,9 +69,9 @@ s! {
pub st_gid: crate::gid_t,
pub st_rdev: crate::dev_t,
pub st_ssize: c_int,
- pub st_atim: crate::st_timespec,
- pub st_mtim: crate::st_timespec,
- pub st_ctim: crate::st_timespec,
+ pub st_atim: crate::timespec,
+ pub st_mtim: crate::timespec,
+ pub st_ctim: crate::timespec,
pub st_blksize: crate::blksize_t,
pub st_blocks: crate::blkcnt_t,
pub st_vfstype: c_int,
@@ -256,6 +262,74 @@ s_no_extra_traits! {
pub __pad: [c_int; 3],
}
+ pub union _kernel_simple_lock {
+ pub _slock: c_long,
+ pub _slockp: *mut lock_data_instrumented,
+ }
+
+ pub struct fileops_t {
+ pub fo_rw: Option<
+ extern "C" fn(
+ file: *mut file,
+ rw: crate::uio_rw,
+ io: *mut c_void,
+ ext: c_long,
+ secattr: *mut c_void,
+ ) -> c_int,
+ >,
+ pub fo_ioctl: Option<
+ extern "C" fn(
+ file: *mut file,
+ a: c_long,
+ b: crate::caddr_t,
+ c: c_long,
+ d: c_long,
+ ) -> c_int,
+ >,
+ pub fo_select: Option<
+ extern "C" fn(file: *mut file, a: c_int, b: *mut c_ushort, c: extern "C" fn()) -> c_int,
+ >,
+ pub fo_close: Option<extern "C" fn(file: *mut file) -> c_int>,
+ pub fo_fstat: Option<extern "C" fn(file: *mut file, sstat: *mut crate::stat) -> c_int>,
+ }
+
+ pub struct file {
+ pub f_flag: c_long,
+ pub f_count: c_int,
+ pub f_options: c_short,
+ pub f_type: c_short,
+ // Should be pointer to 'vnode'
+ pub f_data: *mut c_void,
+ pub f_offset: c_longlong,
+ pub f_dir_off: c_long,
+ // Should be pointer to 'cred'
+ pub f_cred: *mut c_void,
+ pub f_lock: _kernel_simple_lock,
+ pub f_offset_lock: _kernel_simple_lock,
+ pub f_vinfo: crate::caddr_t,
+ pub f_ops: *mut fileops_t,
+ pub f_parentp: crate::caddr_t,
+ pub f_fnamep: crate::caddr_t,
+ pub f_fdata: [c_char; 160],
+ }
+
+ pub union __ld_info_file {
+ pub _ldinfo_fd: c_int,
+ pub _ldinfo_fp: *mut file,
+ pub _core_offset: c_long,
+ }
+
+ pub struct ld_info {
+ pub ldinfo_next: c_uint,
+ pub ldinfo_flags: c_uint,
+ pub _file: __ld_info_file,
+ pub ldinfo_textorg: *mut c_void,
+ pub ldinfo_textsize: c_ulong,
+ pub ldinfo_dataorg: *mut c_void,
+ pub ldinfo_datasize: c_ulong,
+ pub ldinfo_filename: [c_char; 2],
+ }
+
pub union __pollfd_ext_u {
pub addr: *mut c_void,
pub data32: u32,
@@ -327,6 +401,7 @@ cfg_if! {
self.__si_flags.hash(state);
}
}
+
impl PartialEq for __pollfd_ext_u {
fn eq(&self, other: &__pollfd_ext_u) -> bool {
unsafe {
diff --git a/external/vendor/libc/src/unix/bsd/apple/b32/mod.rs b/external/vendor/libc/src/unix/bsd/apple/b32/mod.rs
index bdc986d..bd67625 100644
--- a/external/vendor/libc/src/unix/bsd/apple/b32/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/apple/b32/mod.rs
@@ -60,7 +60,6 @@ s_no_extra_traits! {
__opaque: [c_char; crate::__PTHREAD_ONCE_SIZE__],
}
- #[allow(missing_debug_implementations)]
#[repr(align(16))]
pub struct max_align_t {
priv_: [f64; 2],
diff --git a/external/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs b/external/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs
index e300b76..a13013c 100644
--- a/external/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/apple/b64/aarch64/mod.rs
@@ -47,7 +47,6 @@ s! {
}
s_no_extra_traits! {
- #[allow(missing_debug_implementations)]
pub struct max_align_t {
priv_: f64,
}
diff --git a/external/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs b/external/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs
index cfb1b8a..5365bec 100644
--- a/external/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/apple/b64/x86_64/mod.rs
@@ -172,7 +172,6 @@ s! {
}
s_no_extra_traits! {
- #[allow(missing_debug_implementations)]
#[repr(align(16))]
pub struct max_align_t {
priv_: [f64; 2],
diff --git a/external/vendor/libc/src/unix/bsd/apple/mod.rs b/external/vendor/libc/src/unix/bsd/apple/mod.rs
index 14b35e2..857508f 100644
--- a/external/vendor/libc/src/unix/bsd/apple/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/apple/mod.rs
@@ -179,7 +179,7 @@ deprecated_mach! {
pub type mach_timebase_info_data_t = mach_timebase_info;
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum timezone {}
impl Copy for timezone {}
impl Clone for timezone {
@@ -188,7 +188,7 @@ impl Clone for timezone {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
#[repr(u32)]
pub enum qos_class_t {
QOS_CLASS_USER_INTERACTIVE = 0x21,
@@ -205,7 +205,7 @@ impl Clone for qos_class_t {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
#[repr(u32)]
pub enum sysdir_search_path_directory_t {
SYSDIR_DIRECTORY_APPLICATION = 1,
@@ -240,7 +240,7 @@ impl Clone for sysdir_search_path_directory_t {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
#[repr(u32)]
pub enum sysdir_search_path_domain_mask_t {
SYSDIR_DOMAIN_MASK_USER = (1 << 0),
@@ -3341,6 +3341,10 @@ pub const TIOCDSIMICROCODE: c_uint = 0x20007455;
pub const TIOCPTYGRANT: c_uint = 0x20007454;
pub const TIOCPTYGNAME: c_uint = 0x40807453;
pub const TIOCPTYUNLK: c_uint = 0x20007452;
+pub const TIOCGETA: c_ulong = 0x40487413;
+pub const TIOCSETA: c_ulong = 0x80487414;
+pub const TIOCSETAW: c_ulong = 0x80487415;
+pub const TIOCSETAF: c_ulong = 0x80487416;
pub const BIOCGRSIG: c_ulong = 0x40044272;
pub const BIOCSRSIG: c_ulong = 0x80044273;
@@ -4642,7 +4646,7 @@ pub const PROC_PIDVNODEPATHINFO: c_int = 9;
pub const PROC_PIDPATHINFO_MAXSIZE: c_int = 4096;
pub const PROC_PIDLISTFDS: c_int = 1;
-pub const PROC_PIDLISTFD_SIZE: c_int = mem::size_of::<proc_fdinfo>() as c_int;
+pub const PROC_PIDLISTFD_SIZE: c_int = size_of::<proc_fdinfo>() as c_int;
pub const PROX_FDTYPE_ATALK: c_int = 0;
pub const PROX_FDTYPE_VNODE: c_int = 1;
pub const PROX_FDTYPE_SOCKET: c_int = 2;
@@ -5129,48 +5133,42 @@ pub const VMADDR_CID_HOST: c_uint = 2;
pub const VMADDR_PORT_ANY: c_uint = 0xFFFFFFFF;
const fn __DARWIN_ALIGN32(p: usize) -> usize {
- const __DARWIN_ALIGNBYTES32: usize = mem::size_of::<u32>() - 1;
+ const __DARWIN_ALIGNBYTES32: usize = size_of::<u32>() - 1;
(p + __DARWIN_ALIGNBYTES32) & !__DARWIN_ALIGNBYTES32
}
pub const THREAD_EXTENDED_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_extended_policy_data_t>() / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<thread_extended_policy_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
pub const THREAD_TIME_CONSTRAINT_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_time_constraint_policy_data_t>() / mem::size_of::<integer_t>())
+ (size_of::<thread_time_constraint_policy_data_t>() / size_of::<integer_t>())
as mach_msg_type_number_t;
pub const THREAD_PRECEDENCE_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_precedence_policy_data_t>() / mem::size_of::<integer_t>())
+ (size_of::<thread_precedence_policy_data_t>() / size_of::<integer_t>())
as mach_msg_type_number_t;
pub const THREAD_AFFINITY_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_affinity_policy_data_t>() / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<thread_affinity_policy_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
pub const THREAD_BACKGROUND_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_background_policy_data_t>() / mem::size_of::<integer_t>())
+ (size_of::<thread_background_policy_data_t>() / size_of::<integer_t>())
as mach_msg_type_number_t;
pub const THREAD_LATENCY_QOS_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_latency_qos_policy_data_t>() / mem::size_of::<integer_t>())
+ (size_of::<thread_latency_qos_policy_data_t>() / size_of::<integer_t>())
as mach_msg_type_number_t;
pub const THREAD_THROUGHPUT_QOS_POLICY_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_throughput_qos_policy_data_t>() / mem::size_of::<integer_t>())
+ (size_of::<thread_throughput_qos_policy_data_t>() / size_of::<integer_t>())
as mach_msg_type_number_t;
pub const THREAD_BASIC_INFO_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_basic_info_data_t>() / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<thread_basic_info_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
pub const THREAD_IDENTIFIER_INFO_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_identifier_info_data_t>() / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<thread_identifier_info_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
pub const THREAD_EXTENDED_INFO_COUNT: mach_msg_type_number_t =
- (mem::size_of::<thread_extended_info_data_t>() / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<thread_extended_info_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
pub const TASK_THREAD_TIMES_INFO_COUNT: u32 =
- (mem::size_of::<task_thread_times_info_data_t>() / mem::size_of::<natural_t>()) as u32;
+ (size_of::<task_thread_times_info_data_t>() / size_of::<natural_t>()) as u32;
pub const MACH_TASK_BASIC_INFO_COUNT: u32 =
- (mem::size_of::<mach_task_basic_info_data_t>() / mem::size_of::<natural_t>()) as u32;
-pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t = (mem::size_of::<vm_statistics64_data_t>()
- / mem::size_of::<integer_t>())
- as mach_msg_type_number_t;
+ (size_of::<mach_task_basic_info_data_t>() / size_of::<natural_t>()) as u32;
+pub const HOST_VM_INFO64_COUNT: mach_msg_type_number_t =
+ (size_of::<vm_statistics64_data_t>() / size_of::<integer_t>()) as mach_msg_type_number_t;
// bsd/net/if_mib.h
/// Non-interface-specific
@@ -5209,7 +5207,7 @@ f! {
let cmsg_len = (*cmsg).cmsg_len as usize;
let next = cmsg as usize + __DARWIN_ALIGN32(cmsg_len);
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
- if next + __DARWIN_ALIGN32(mem::size_of::<cmsghdr>()) > max {
+ if next + __DARWIN_ALIGN32(size_of::<cmsghdr>()) > max {
core::ptr::null_mut()
} else {
next as *mut cmsghdr
@@ -5217,52 +5215,52 @@ f! {
}
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(mem::size_of::<cmsghdr>()))
+ (cmsg as *mut c_uchar).add(__DARWIN_ALIGN32(size_of::<cmsghdr>()))
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (__DARWIN_ALIGN32(mem::size_of::<cmsghdr>()) + __DARWIN_ALIGN32(length as usize)) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (__DARWIN_ALIGN32(size_of::<cmsghdr>()) + __DARWIN_ALIGN32(length as usize)) as c_uint
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- (__DARWIN_ALIGN32(mem::size_of::<cmsghdr>()) + length as usize) as c_uint
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ (__DARWIN_ALIGN32(size_of::<cmsghdr>()) + length as usize) as c_uint
}
- pub {const} fn VM_MAKE_TAG(id: u8) -> u32 {
+ pub const fn VM_MAKE_TAG(id: u8) -> u32 {
(id as u32) << 24u32
}
}
safe_f! {
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
status >> 8
}
- pub {const} fn _WSTATUS(status: c_int) -> c_int {
+ pub const fn _WSTATUS(status: c_int) -> c_int {
status & 0x7f
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
_WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) == 0x13
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
_WSTATUS(status) != _WSTOPPED && _WSTATUS(status) != 0
}
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
_WSTATUS(status) == _WSTOPPED && WSTOPSIG(status) != 0x13
}
- pub {const} fn makedev(major: i32, minor: i32) -> dev_t {
+ pub const fn makedev(major: i32, minor: i32) -> dev_t {
(major << 24) | minor
}
- pub {const} fn major(dev: dev_t) -> i32 {
+ pub const fn major(dev: dev_t) -> i32 {
(dev >> 24) & 0xff
}
- pub {const} fn minor(dev: dev_t) -> i32 {
+ pub const fn minor(dev: dev_t) -> i32 {
dev & 0xffffff
}
}
@@ -5386,6 +5384,11 @@ extern "C" {
pub fn mach_host_self() -> mach_port_t;
#[deprecated(since = "0.2.55", note = "Use the `mach2` crate instead")]
pub fn mach_thread_self() -> mach_port_t;
+ pub fn pthread_cond_timedwait_relative_np(
+ cond: *mut pthread_cond_t,
+ lock: *mut pthread_mutex_t,
+ timeout: *const crate::timespec,
+ ) -> c_int;
pub fn pthread_once(
once_control: *mut crate::pthread_once_t,
init_routine: Option<unsafe extern "C" fn()>,
@@ -6163,6 +6166,14 @@ extern "C" {
search_path: *const c_char,
argv: *const *mut c_char,
) -> c_int;
+
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ arg: *mut c_void,
+ compar: Option<unsafe extern "C" fn(*mut c_void, *const c_void, *const c_void) -> c_int>,
+ );
}
#[allow(deprecated)]
@@ -6205,10 +6216,11 @@ cfg_if! {
// These require a dependency on `libiconv`, and including this when built as
// part of `std` means every Rust program gets it. Ideally we would have a link
// modifier to only include these if they are used, but we do not.
-#[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")]
#[cfg_attr(not(feature = "rustc-dep-of-std"), link(name = "iconv"))]
extern "C" {
+ #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")]
pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t;
+ #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")]
pub fn iconv(
cd: iconv_t,
inbuf: *mut *mut c_char,
@@ -6216,6 +6228,7 @@ extern "C" {
outbuf: *mut *mut c_char,
outbytesleft: *mut size_t,
) -> size_t;
+ #[deprecated(note = "Will be removed in 1.0 to avoid the `iconv` dependency")]
pub fn iconv_close(cd: iconv_t) -> c_int;
}
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
index 8ecb333..8720bf7 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
@@ -45,7 +45,7 @@ pub type vm_map_entry_t = *mut vm_map_entry;
pub type pmap = __c_anonymous_pmap;
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum sem {}
impl Copy for sem {}
impl Clone for sem {
@@ -949,7 +949,7 @@ pub const CPUCTL_MSRSBIT: c_int = 0xc0106305;
pub const CPUCTL_MSRCBIT: c_int = 0xc0106306;
pub const CPUCTL_CPUID_COUNT: c_int = 0xc0106307;
-pub const CPU_SETSIZE: size_t = mem::size_of::<crate::cpumask_t>() * 8;
+pub const CPU_SETSIZE: size_t = size_of::<crate::cpumask_t>() * 8;
pub const EVFILT_READ: i16 = -1;
pub const EVFILT_WRITE: i16 = -2;
@@ -1359,6 +1359,8 @@ pub const VCHECKPT: usize = 19;
pub const _PC_2_SYMLINKS: c_int = 22;
pub const _PC_TIMESTAMP_RESOLUTION: c_int = 23;
+pub const _CS_PATH: c_int = 1;
+
pub const _SC_V7_ILP32_OFF32: c_int = 122;
pub const _SC_V7_ILP32_OFFBIG: c_int = 123;
pub const _SC_V7_LP64_OFF64: c_int = 124;
@@ -1419,25 +1421,23 @@ pub const RTAX_MPLS2: c_int = 9;
pub const RTAX_MPLS3: c_int = 10;
pub const RTAX_MAX: c_int = 11;
-const_fn! {
- {const} fn _CMSG_ALIGN(n: usize) -> usize {
- (n + (mem::size_of::<c_long>() - 1)) & !(mem::size_of::<c_long>() - 1)
- }
+const fn _CMSG_ALIGN(n: usize) -> usize {
+ (n + (size_of::<c_long>() - 1)) & !(size_of::<c_long>() - 1)
}
f! {
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(mem::size_of::<cmsghdr>()) as isize)
+ (cmsg as *mut c_uchar).offset(_CMSG_ALIGN(size_of::<cmsghdr>()) as isize)
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- (_CMSG_ALIGN(mem::size_of::<cmsghdr>()) + length as usize) as c_uint
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ (_CMSG_ALIGN(size_of::<cmsghdr>()) + length as usize) as c_uint
}
pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
let next = cmsg as usize
+ _CMSG_ALIGN((*cmsg).cmsg_len as usize)
- + _CMSG_ALIGN(mem::size_of::<cmsghdr>());
+ + _CMSG_ALIGN(size_of::<cmsghdr>());
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
if next <= max {
(cmsg as usize + _CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr
@@ -1446,8 +1446,8 @@ f! {
}
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (_CMSG_ALIGN(mem::size_of::<cmsghdr>()) + _CMSG_ALIGN(length as usize)) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (_CMSG_ALIGN(size_of::<cmsghdr>()) + _CMSG_ALIGN(length as usize)) as c_uint
}
pub fn CPU_ZERO(cpuset: &mut cpu_set_t) -> () {
@@ -1475,11 +1475,11 @@ f! {
}
safe_f! {
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0
}
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -1488,11 +1488,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
((dev >> 8) & 0xff) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(dev & 0xffff00ff) as c_int
}
}
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
index 7f5693d..e74c26b 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
@@ -33,7 +33,7 @@ s_no_extra_traits! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_longlong>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_longlong>() - 1;
cfg_if! {
if #[cfg(feature = "extra_traits")] {
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs
index 27eeafe..c17e129 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs
@@ -43,7 +43,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_int>() - 1;
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
index 4b96972..dca7d6e 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
@@ -2,7 +2,8 @@ use crate::off_t;
use crate::prelude::*;
#[repr(C)]
-#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))]
pub struct stat {
pub st_dev: crate::dev_t,
pub st_ino: crate::ino_t,
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs
index c492ceb..1f31aac 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs
@@ -2,7 +2,8 @@ use crate::off_t;
use crate::prelude::*;
#[repr(C)]
-#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Eq, Hash, PartialEq))]
pub struct stat {
pub st_dev: crate::dev_t,
pub st_ino: crate::ino_t,
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
index 9705e30..b3b032b 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
@@ -385,17 +385,17 @@ pub const MINCORE_SUPER: c_int = 0x20;
pub const SPECNAMELEN: c_int = 63;
safe_f! {
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
(major << 8) | minor
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
((dev >> 8) & 0xff) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(dev & 0xffff00ff) as c_int
}
}
@@ -424,6 +424,18 @@ extern "C" {
// in FreeBSD 12
pub fn dirname(path: *const c_char) -> *mut c_char;
pub fn basename(path: *const c_char) -> *mut c_char;
+
+ // Argument order of the function pointer changed in FreeBSD 14. From 14 onwards the signature
+ // matches the POSIX specification by having the third argument be a mutable pointer, on
+ // earlier versions the first argument is the mutable pointer.
+ #[link_name = "qsort_r@FBSD_1.0"]
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ arg: *mut c_void,
+ compar: Option<unsafe extern "C" fn(*mut c_void, *const c_void, *const c_void) -> c_int>,
+ );
}
cfg_if! {
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
index 005b268..962d781 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
@@ -434,7 +434,7 @@ pub const KI_NSPARE_PTR: usize = 6;
pub const MINCORE_SUPER: c_int = 0x20;
safe_f! {
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -445,11 +445,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
}
}
@@ -468,6 +468,15 @@ extern "C" {
pub fn dirname(path: *mut c_char) -> *mut c_char;
pub fn basename(path: *mut c_char) -> *mut c_char;
+
+ #[link_name = "qsort_r@FBSD_1.0"]
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ arg: *mut c_void,
+ compar: Option<unsafe extern "C" fn(*mut c_void, *const c_void, *const c_void) -> c_int>,
+ );
}
cfg_if! {
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
index 5c40a35..7b0e467 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
@@ -456,7 +456,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
pub const MINCORE_SUPER: c_int = 0x20;
safe_f! {
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -467,11 +467,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
}
}
@@ -507,6 +507,15 @@ extern "C" {
pub fn dirname(path: *mut c_char) -> *mut c_char;
pub fn basename(path: *mut c_char) -> *mut c_char;
+
+ #[link_name = "qsort_r@FBSD_1.0"]
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ arg: *mut c_void,
+ compar: Option<unsafe extern "C" fn(*mut c_void, *const c_void, *const c_void) -> c_int>,
+ );
}
#[link(name = "kvm")]
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
index de1001b..f20a466 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
@@ -234,6 +234,7 @@ s! {
pub ki_tdflags: c_long,
}
+ #[non_exhaustive]
pub struct stat {
pub st_dev: crate::dev_t,
pub st_ino: crate::ino_t,
@@ -265,7 +266,8 @@ s! {
pub st_blksize: crate::blksize_t,
pub st_flags: crate::fflags_t,
pub st_gen: u64,
- pub st_spare: [u64; 10],
+ pub st_filerev: u64,
+ pub st_spare: [u64; 9],
}
}
@@ -456,7 +458,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
pub const MINCORE_SUPER: c_int = 0x60;
safe_f! {
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -467,11 +469,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
}
}
@@ -507,6 +509,14 @@ extern "C" {
pub fn dirname(path: *mut c_char) -> *mut c_char;
pub fn basename(path: *mut c_char) -> *mut c_char;
+
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
+ arg: *mut c_void,
+ );
}
#[link(name = "kvm")]
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
index 6a02d7b..c0d27ef 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
@@ -50,6 +50,7 @@ s! {
_priv: [c_ulong; 8],
}
+ #[non_exhaustive]
pub struct kinfo_proc {
/// Size of this structure.
pub ki_structsize: c_int,
@@ -226,6 +227,8 @@ s! {
// This is normally "struct pwddesc".
/// Pointer to process paths info.
pub ki_pd: *mut c_void,
+ /// Address of the ext err msg place
+ pub ki_uerrmsg: *mut c_void,
pub ki_spareptrs: [*mut c_void; crate::KI_NSPARE_PTR],
pub ki_sparelongs: [c_long; crate::KI_NSPARE_LONG],
/// PS_* flags.
@@ -445,7 +448,7 @@ pub const KF_TYPE_EVENTFD: c_int = 13;
/// max length of devicename
pub const SPECNAMELEN: c_int = 255;
-pub const KI_NSPARE_PTR: usize = 5;
+pub const KI_NSPARE_PTR: usize = 4;
/// domainset policies
pub const DOMAINSET_POLICY_INVALID: c_int = 0;
@@ -457,7 +460,7 @@ pub const DOMAINSET_POLICY_INTERLEAVE: c_int = 4;
pub const MINCORE_SUPER: c_int = 0x60;
safe_f! {
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -468,11 +471,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as c_int
}
}
@@ -508,6 +511,14 @@ extern "C" {
pub fn dirname(path: *mut c_char) -> *mut c_char;
pub fn basename(path: *mut c_char) -> *mut c_char;
+
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
+ arg: *mut c_void,
+ );
}
#[link(name = "kvm")]
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
index de41a7c..a5166d4 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -11,6 +11,9 @@ pub type fixpt_t = __fixpt_t;
pub type __lwpid_t = i32;
pub type lwpid_t = __lwpid_t;
pub type blksize_t = i32;
+pub type ksize_t = u64;
+pub type inp_gen_t = u64;
+pub type so_gen_t = u64;
pub type clockid_t = c_int;
pub type sem_t = _sem;
pub type timer_t = *mut __c_anonymous__timer;
@@ -50,7 +53,8 @@ pub type sctp_assoc_t = u32;
pub type eventfd_t = u64;
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_support_flags {
DEVSTAT_ALL_SUPPORTED = 0x00,
@@ -65,7 +69,8 @@ impl Clone for devstat_support_flags {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_trans_flags {
DEVSTAT_NO_DATA = 0x00,
@@ -81,7 +86,8 @@ impl Clone for devstat_trans_flags {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_tag_type {
DEVSTAT_TAG_SIMPLE = 0x00,
@@ -96,7 +102,8 @@ impl Clone for devstat_tag_type {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_match_flags {
DEVSTAT_MATCH_NONE = 0x00,
@@ -111,7 +118,8 @@ impl Clone for devstat_match_flags {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_priority {
DEVSTAT_PRIORITY_MIN = 0x000,
@@ -132,7 +140,8 @@ impl Clone for devstat_priority {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_type_flags {
DEVSTAT_TYPE_DIRECT = 0x000,
@@ -164,7 +173,8 @@ impl Clone for devstat_type_flags {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_metric {
DSM_NONE,
@@ -221,7 +231,8 @@ impl Clone for devstat_metric {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug, Hash, PartialEq, Eq))]
+#[derive(Debug)]
+#[cfg_attr(feature = "extra_traits", derive(Hash, PartialEq, Eq))]
#[repr(u32)]
pub enum devstat_select_mode {
DS_SELECT_ADD,
@@ -1701,6 +1712,75 @@ s_no_extra_traits! {
pub uc_flags: c_int,
__spare__: [c_int; 4],
}
+
+ #[repr(align(8))]
+ pub struct xinpgen {
+ pub xig_len: ksize_t,
+ pub xig_count: u32,
+ _xig_spare32: u32,
+ pub xig_gen: inp_gen_t,
+ pub xig_sogen: so_gen_t,
+ _xig_spare64: [u64; 4],
+ }
+
+ pub struct in_addr_4in6 {
+ _ia46_pad32: [u32; 3],
+ pub ia46_addr4: crate::in_addr,
+ }
+
+ pub union in_dependaddr {
+ pub id46_addr: crate::in_addr_4in6,
+ pub id6_addr: crate::in6_addr,
+ }
+
+ pub struct in_endpoints {
+ pub ie_fport: u16,
+ pub ie_lport: u16,
+ pub ie_dependfaddr: crate::in_dependaddr,
+ pub ie_dependladdr: crate::in_dependaddr,
+ pub ie6_zoneid: u32,
+ }
+
+ pub struct in_conninfo {
+ pub inc_flags: u8,
+ pub inc_len: u8,
+ pub inc_fibnum: u16,
+ pub inc_ie: crate::in_endpoints,
+ }
+
+ pub struct xktls_session_onedir {
+ // Note: this field is called `gen` in upstream FreeBSD, but `gen` is
+ // reserved keyword in Rust since the 2024 Edition, hence `gennum`.
+ pub gennum: u64,
+ _rsrv1: [u64; 8],
+ _rsrv2: [u32; 8],
+ pub iv: [u8; 32],
+ pub cipher_algorithm: i32,
+ pub auth_algorithm: i32,
+ pub cipher_key_len: u16,
+ pub iv_len: u16,
+ pub auth_key_len: u16,
+ pub max_frame_len: u16,
+ pub tls_vmajor: u8,
+ pub tls_vminor: u8,
+ pub tls_hlen: u8,
+ pub tls_tlen: u8,
+ pub tls_bs: u8,
+ pub flags: u8,
+ pub drv_st_len: u16,
+ pub ifnet: [c_char; 16],
+ }
+
+ pub struct xktls_session {
+ pub tsz: u32,
+ pub fsz: u32,
+ pub inp_gencnt: u64,
+ pub so_pcb: kvaddr_t,
+ pub coninf: crate::in_conninfo,
+ pub rx_vlan_id: c_ushort,
+ pub rcv: crate::xktls_session_onedir,
+ pub snd: crate::xktls_session_onedir,
+ }
}
cfg_if! {
@@ -2315,7 +2395,7 @@ cfg_if! {
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
#[repr(u32)]
pub enum dot3Vendors {
dot3VendorAMD = 1,
@@ -2878,8 +2958,6 @@ pub const JAIL_CREATE: c_int = 0x01;
pub const JAIL_UPDATE: c_int = 0x02;
pub const JAIL_ATTACH: c_int = 0x04;
pub const JAIL_DYING: c_int = 0x08;
-pub const JAIL_SET_MASK: c_int = 0x0f;
-pub const JAIL_GET_MASK: c_int = 0x08;
pub const JAIL_SYS_DISABLE: c_int = 0;
pub const JAIL_SYS_NEW: c_int = 1;
pub const JAIL_SYS_INHERIT: c_int = 2;
@@ -3566,6 +3644,26 @@ pub const TCP_BBR_USEDEL_RATE: c_int = 1079;
pub const TCP_BBR_MIN_RTO: c_int = 1080;
pub const TCP_BBR_MAX_RTO: c_int = 1081;
pub const TCP_BBR_ALGORITHM: c_int = 1083;
+pub const TCP_BBR_PACE_PER_SEC: c_int = 1086;
+pub const TCP_BBR_PACE_DEL_TAR: c_int = 1087;
+pub const TCP_BBR_PACE_SEG_MAX: c_int = 1088;
+pub const TCP_BBR_PACE_SEG_MIN: c_int = 1089;
+pub const TCP_BBR_PACE_CROSS: c_int = 1090;
+pub const TCP_BBR_TMR_PACE_OH: c_int = 1096;
+pub const TCP_BBR_RACK_RTT_USE: c_int = 1098;
+pub const TCP_BBR_RETRAN_WTSO: c_int = 1099;
+pub const TCP_BBR_PROBE_RTT_GAIN: c_int = 1101;
+pub const TCP_BBR_PROBE_RTT_LEN: c_int = 1102;
+pub const TCP_BBR_SEND_IWND_IN_TSO: c_int = 1103;
+pub const TCP_BBR_USE_RACK_RR: c_int = 1104;
+pub const TCP_BBR_HDWR_PACE: c_int = 1105;
+pub const TCP_BBR_UTTER_MAX_TSO: c_int = 1106;
+pub const TCP_BBR_EXTRA_STATE: c_int = 1107;
+pub const TCP_BBR_FLOOR_MIN_TSO: c_int = 1108;
+pub const TCP_BBR_MIN_TOPACEOUT: c_int = 1109;
+pub const TCP_BBR_TSTMP_RAISES: c_int = 1110;
+pub const TCP_BBR_POLICER_DETECT: c_int = 1111;
+pub const TCP_BBR_RACK_INIT_RATE: c_int = 1112;
pub const IP_BINDANY: c_int = 24;
pub const IP_BINDMULTI: c_int = 25;
@@ -4147,7 +4245,10 @@ pub const TDI_IWAIT: c_int = 0x0010;
pub const P_ADVLOCK: c_int = 0x00000001;
pub const P_CONTROLT: c_int = 0x00000002;
pub const P_KPROC: c_int = 0x00000004;
+#[deprecated(since = "1.0", note = "Replaced in FreeBSD 15 by P_IDLEPROC")]
pub const P_UNUSED3: c_int = 0x00000008;
+#[cfg(freebsd15)]
+pub const P_IDLEPROC: c_int = 0x00000008;
pub const P_PPWAIT: c_int = 0x00000010;
pub const P_PROFIL: c_int = 0x00000020;
pub const P_STOPPROF: c_int = 0x00000040;
@@ -4618,6 +4719,10 @@ pub const RB_POWERCYCLE: c_int = 0x400000;
pub const RB_PROBE: c_int = 0x10000000;
pub const RB_MULTIPLE: c_int = 0x20000000;
+// netinet/in_pcb.h
+pub const INC_ISIPV6: c_uchar = 0x01;
+pub const INC_IPV6MINMTU: c_uchar = 0x02;
+
// sys/time.h
pub const CLOCK_BOOTTIME: crate::clockid_t = crate::CLOCK_UPTIME;
pub const CLOCK_REALTIME_COARSE: crate::clockid_t = crate::CLOCK_REALTIME_FAST;
@@ -4644,27 +4749,24 @@ pub const fn MAP_ALIGNED(a: c_int) -> c_int {
a << 24
}
-const_fn! {
- {const} fn _ALIGN(p: usize) -> usize {
- (p + _ALIGNBYTES) & !_ALIGNBYTES
- }
+const fn _ALIGN(p: usize) -> usize {
+ (p + _ALIGNBYTES) & !_ALIGNBYTES
}
f! {
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::<cmsghdr>()))
+ (cmsg as *mut c_uchar).add(_ALIGN(size_of::<cmsghdr>()))
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- _ALIGN(mem::size_of::<cmsghdr>()) as c_uint + length
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ _ALIGN(size_of::<cmsghdr>()) as c_uint + length
}
pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
if cmsg.is_null() {
return crate::CMSG_FIRSTHDR(mhdr);
}
- let next =
- cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::<cmsghdr>());
+ let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::<cmsghdr>());
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
if next > max {
core::ptr::null_mut::<cmsghdr>()
@@ -4673,25 +4775,25 @@ f! {
}
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (_ALIGN(mem::size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (_ALIGN(size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
}
pub fn MALLOCX_ALIGN(lg: c_uint) -> c_int {
ffsl(lg as c_long - 1)
}
- pub {const} fn MALLOCX_TCACHE(tc: c_int) -> c_int {
+ pub const fn MALLOCX_TCACHE(tc: c_int) -> c_int {
(tc + 2) << 8 as c_int
}
- pub {const} fn MALLOCX_ARENA(a: c_int) -> c_int {
+ pub const fn MALLOCX_ARENA(a: c_int) -> c_int {
(a + 1) << 20 as c_int
}
pub fn SOCKCREDSIZE(ngrps: usize) -> usize {
let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 };
- mem::size_of::<sockcred>() + mem::size_of::<crate::gid_t>() * ngrps
+ size_of::<sockcred>() + size_of::<crate::gid_t>() * ngrps
}
pub fn uname(buf: *mut crate::utsname) -> c_int {
@@ -4711,27 +4813,27 @@ f! {
}
pub fn CPU_SET(cpu: usize, cpuset: &mut cpuset_t) -> () {
- let bitset_bits = 8 * mem::size_of::<c_long>();
+ let bitset_bits = 8 * size_of::<c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
cpuset.__bits[idx] |= 1 << offset;
}
pub fn CPU_CLR(cpu: usize, cpuset: &mut cpuset_t) -> () {
- let bitset_bits = 8 * mem::size_of::<c_long>();
+ let bitset_bits = 8 * size_of::<c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
cpuset.__bits[idx] &= !(1 << offset);
}
pub fn CPU_ISSET(cpu: usize, cpuset: &cpuset_t) -> bool {
- let bitset_bits = 8 * mem::size_of::<c_long>();
+ let bitset_bits = 8 * size_of::<c_long>();
let (idx, offset) = (cpu / bitset_bits, cpu % bitset_bits);
0 != cpuset.__bits[idx] & (1 << offset)
}
pub fn CPU_COUNT(cpuset: &cpuset_t) -> c_int {
let mut s: u32 = 0;
- let cpuset_size = mem::size_of::<cpuset_t>();
- let bitset_size = mem::size_of::<c_long>();
+ let cpuset_size = size_of::<cpuset_t>();
+ let bitset_size = size_of::<c_long>();
for i in cpuset.__bits[..(cpuset_size / bitset_size)].iter() {
s += i.count_ones();
@@ -4741,7 +4843,7 @@ f! {
pub fn SOCKCRED2SIZE(ngrps: usize) -> usize {
let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 };
- mem::size_of::<sockcred2>() + mem::size_of::<crate::gid_t>() * ngrps
+ size_of::<sockcred2>() + size_of::<crate::gid_t>() * ngrps
}
pub fn PROT_MAX(x: c_int) -> c_int {
@@ -4754,11 +4856,11 @@ f! {
}
safe_f! {
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0 && status != 0x13
}
- pub {const} fn INVALID_SINFO_FLAG(x: c_int) -> bool {
+ pub const fn INVALID_SINFO_FLAG(x: c_int) -> bool {
(x) & 0xfffffff0
& !(SCTP_EOF
| SCTP_ABORT
@@ -4770,31 +4872,31 @@ safe_f! {
!= 0
}
- pub {const} fn PR_SCTP_POLICY(x: c_int) -> c_int {
+ pub const fn PR_SCTP_POLICY(x: c_int) -> c_int {
x & 0x0f
}
- pub {const} fn PR_SCTP_ENABLED(x: c_int) -> bool {
+ pub const fn PR_SCTP_ENABLED(x: c_int) -> bool {
PR_SCTP_POLICY(x) != SCTP_PR_SCTP_NONE && PR_SCTP_POLICY(x) != SCTP_PR_SCTP_ALL
}
- pub {const} fn PR_SCTP_TTL_ENABLED(x: c_int) -> bool {
+ pub const fn PR_SCTP_TTL_ENABLED(x: c_int) -> bool {
PR_SCTP_POLICY(x) == SCTP_PR_SCTP_TTL
}
- pub {const} fn PR_SCTP_BUF_ENABLED(x: c_int) -> bool {
+ pub const fn PR_SCTP_BUF_ENABLED(x: c_int) -> bool {
PR_SCTP_POLICY(x) == SCTP_PR_SCTP_BUF
}
- pub {const} fn PR_SCTP_RTX_ENABLED(x: c_int) -> bool {
+ pub const fn PR_SCTP_RTX_ENABLED(x: c_int) -> bool {
PR_SCTP_POLICY(x) == SCTP_PR_SCTP_RTX
}
- pub {const} fn PR_SCTP_INVALID_POLICY(x: c_int) -> bool {
+ pub const fn PR_SCTP_INVALID_POLICY(x: c_int) -> bool {
PR_SCTP_POLICY(x) > SCTP_PR_SCTP_MAX
}
- pub {const} fn PR_SCTP_VALID_POLICY(x: c_int) -> bool {
+ pub const fn PR_SCTP_VALID_POLICY(x: c_int) -> bool {
PR_SCTP_POLICY(x) <= SCTP_PR_SCTP_MAX
}
}
@@ -5263,6 +5365,11 @@ extern "C" {
idx1: c_ulong,
idx2: c_ulong,
) -> c_int;
+ pub fn dlvsym(
+ handle: *mut c_void,
+ symbol: *const c_char,
+ version: *const c_char,
+ ) -> *mut c_void;
}
#[link(name = "memstat")]
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs
index a6d9ed6..e4275b1 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc.rs
@@ -53,7 +53,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_int>() - 1;
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
index 87b425a..b5a8131 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
@@ -53,7 +53,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs
index bc065cf..5ae5d34 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/riscv64.rs
@@ -107,7 +107,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_longlong>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_longlong>() - 1;
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
index b739719..5becde5 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
@@ -124,7 +124,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
index 40e1d72..d665e3d 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
@@ -92,13 +92,13 @@ s_no_extra_traits! {
pub a_un: __c_anonymous_elf64_auxv_union,
}
- #[allow(missing_debug_implementations)]
#[repr(align(16))]
pub struct max_align_t {
priv_: [f64; 4],
}
#[repr(align(16))]
+ #[cfg_attr(not(any(freebsd11, freebsd12, freebsd13, freebsd14)), non_exhaustive)]
pub struct mcontext_t {
pub mc_onstack: register_t,
pub mc_rdi: register_t,
@@ -137,7 +137,14 @@ s_no_extra_traits! {
pub mc_gsbase: register_t,
pub mc_xfpustate: register_t,
pub mc_xfpustate_len: register_t,
+ // freebsd < 15
+ #[cfg(any(freebsd11, freebsd12, freebsd13, freebsd14))]
pub mc_spare: [c_long; 4],
+ // freebsd >= 15
+ #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))]
+ pub mc_tlsbase: register_t,
+ #[cfg(not(any(freebsd11, freebsd12, freebsd13, freebsd14)))]
+ pub mc_spare: [c_long; 3],
}
}
@@ -316,7 +323,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const BIOCSRTIMEOUT: c_ulong = 0x8010426d;
pub const BIOCGRTIMEOUT: c_ulong = 0x4010426e;
@@ -327,7 +334,6 @@ pub const MINSIGSTKSZ: size_t = 2048; // 512 * 4
pub const _MC_HASSEGS: u32 = 0x1;
pub const _MC_HASBASES: u32 = 0x2;
pub const _MC_HASFPXSTATE: u32 = 0x4;
-pub const _MC_FLAG_MASK: u32 = _MC_HASSEGS | _MC_HASBASES | _MC_HASFPXSTATE;
pub const _MC_FPFMT_NODEV: c_long = 0x10000;
pub const _MC_FPFMT_XMM: c_long = 0x10002;
diff --git a/external/vendor/libc/src/unix/bsd/freebsdlike/mod.rs b/external/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
index 644e035..4bf6203 100644
--- a/external/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/freebsdlike/mod.rs
@@ -59,7 +59,7 @@ cfg_if! {
// link.h
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum timezone {}
impl Copy for timezone {}
impl Clone for timezone {
@@ -427,7 +427,7 @@ cfg_if! {
}
// Non-public helper constant
-const SIZEOF_LONG: usize = mem::size_of::<c_long>();
+const SIZEOF_LONG: usize = size_of::<c_long>();
#[deprecated(
since = "0.2.64",
@@ -1197,9 +1197,11 @@ pub const _SC_RAW_SOCKETS: c_int = 119;
pub const _SC_SYMLOOP_MAX: c_int = 120;
pub const _SC_PHYS_PAGES: c_int = 121;
-pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
-pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
-pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
+pub const _CS_PATH: c_int = 1;
+
+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut();
+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut();
+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut();
pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1;
pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2;
pub const PTHREAD_MUTEX_NORMAL: c_int = 3;
@@ -1238,7 +1240,15 @@ pub const TIOCGETD: c_ulong = 0x4004741a;
pub const TIOCSETD: c_ulong = 0x8004741b;
pub const TIOCGDRAINWAIT: c_ulong = 0x40047456;
pub const TIOCSDRAINWAIT: c_ulong = 0x80047457;
+#[cfg_attr(
+ not(target_os = "dragonfly"),
+ deprecated = "unused since FreeBSD 8, removed in FreeBSD 15"
+)]
pub const TIOCMGDTRWAIT: c_ulong = 0x4004745a;
+#[cfg_attr(
+ not(target_os = "dragonfly"),
+ deprecated = "unused since FreeBSD 8, removed in FreeBSD 15"
+)]
pub const TIOCMSDTRWAIT: c_ulong = 0x8004745b;
pub const TIOCDRAIN: c_ulong = 0x2000745e;
pub const TIOCEXT: c_ulong = 0x80047460;
@@ -1331,7 +1341,7 @@ pub const B230400: speed_t = 230400;
pub const EXTA: speed_t = 19200;
pub const EXTB: speed_t = 38400;
-pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t;
+pub const SEM_FAILED: *mut sem_t = ptr::null_mut();
pub const CRTSCTS: crate::tcflag_t = 0x00030000;
pub const CCTS_OFLOW: crate::tcflag_t = 0x00010000;
@@ -1482,15 +1492,15 @@ pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10;
pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20;
safe_f! {
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
status == 0x13
}
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
status >> 8
}
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0o177) == 0o177
}
}
diff --git a/external/vendor/libc/src/unix/bsd/mod.rs b/external/vendor/libc/src/unix/bsd/mod.rs
index f2f17f4..24531db 100644
--- a/external/vendor/libc/src/unix/bsd/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/mod.rs
@@ -573,7 +573,7 @@ pub const RTAX_BRD: c_int = 7;
f! {
pub fn CMSG_FIRSTHDR(mhdr: *const crate::msghdr) -> *mut cmsghdr {
- if (*mhdr).msg_controllen as usize >= mem::size_of::<cmsghdr>() {
+ if (*mhdr).msg_controllen as usize >= size_of::<cmsghdr>() {
(*mhdr).msg_control.cast::<cmsghdr>()
} else {
core::ptr::null_mut()
@@ -581,20 +581,20 @@ f! {
}
pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () {
- let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let bits = size_of_val(&(*set).fds_bits[0]) * 8;
let fd = fd as usize;
(*set).fds_bits[fd / bits] &= !(1 << (fd % bits));
return;
}
pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool {
- let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let bits = size_of_val(&(*set).fds_bits[0]) * 8;
let fd = fd as usize;
return ((*set).fds_bits[fd / bits] & (1 << (fd % bits))) != 0;
}
pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () {
- let bits = mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let bits = size_of_val(&(*set).fds_bits[0]) * 8;
let fd = fd as usize;
(*set).fds_bits[fd / bits] |= 1 << (fd % bits);
return;
@@ -608,23 +608,23 @@ f! {
}
safe_f! {
- pub {const} fn WTERMSIG(status: c_int) -> c_int {
+ pub const fn WTERMSIG(status: c_int) -> c_int {
status & 0o177
}
- pub {const} fn WIFEXITED(status: c_int) -> bool {
+ pub const fn WIFEXITED(status: c_int) -> bool {
(status & 0o177) == 0
}
- pub {const} fn WEXITSTATUS(status: c_int) -> c_int {
+ pub const fn WEXITSTATUS(status: c_int) -> c_int {
(status >> 8) & 0x00ff
}
- pub {const} fn WCOREDUMP(status: c_int) -> bool {
+ pub const fn WCOREDUMP(status: c_int) -> bool {
(status & 0o200) != 0
}
- pub {const} fn QCMD(cmd: c_int, type_: c_int) -> c_int {
+ pub const fn QCMD(cmd: c_int, type_: c_int) -> c_int {
(cmd << 8) | (type_ & 0x00ff)
}
}
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/mod.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
index 682b8b7..bc3e4cd 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/mod.rs
@@ -16,7 +16,7 @@ pub type id_t = u32;
pub type sem_t = *mut sem;
pub type key_t = c_long;
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum timezone {}
impl Copy for timezone {}
impl Clone for timezone {
@@ -24,7 +24,7 @@ impl Clone for timezone {
*self
}
}
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum sem {}
impl Copy for sem {}
impl Clone for sem {
@@ -440,6 +440,34 @@ pub const MNT_NODEV: c_int = 0x00000010;
pub const MNT_LOCAL: c_int = 0x00001000;
pub const MNT_QUOTA: c_int = 0x00002000;
+// sys/ioccom.h in NetBSD and OpenBSD
+pub const IOCPARM_MASK: u32 = 0x1fff;
+
+pub const IOC_VOID: c_ulong = 0x20000000;
+pub const IOC_OUT: c_ulong = 0x40000000;
+pub const IOC_IN: c_ulong = 0x80000000;
+pub const IOC_INOUT: c_ulong = IOC_IN | IOC_OUT;
+pub const IOC_DIRMASK: c_ulong = 0xe0000000;
+
+pub const fn _IO(g: c_ulong, n: c_ulong) -> c_ulong {
+ _IOC(IOC_VOID, g, n, 0)
+}
+
+/// Build an ioctl number for an read-only ioctl.
+pub const fn _IOR<T>(g: c_ulong, n: c_ulong) -> c_ulong {
+ _IOC(IOC_OUT, g, n, mem::size_of::<T>() as c_ulong)
+}
+
+/// Build an ioctl number for an write-only ioctl.
+pub const fn _IOW<T>(g: c_ulong, n: c_ulong) -> c_ulong {
+ _IOC(IOC_IN, g, n, mem::size_of::<T>() as c_ulong)
+}
+
+/// Build an ioctl number for a read-write ioctl.
+pub const fn _IOWR<T>(g: c_ulong, n: c_ulong) -> c_ulong {
+ _IOC(IOC_INOUT, g, n, mem::size_of::<T>() as c_ulong)
+}
+
pub const AF_UNSPEC: c_int = 0;
pub const AF_LOCAL: c_int = 1;
pub const AF_UNIX: c_int = AF_LOCAL;
@@ -623,7 +651,7 @@ pub const B230400: speed_t = 230400;
pub const EXTA: speed_t = 19200;
pub const EXTB: speed_t = 38400;
-pub const SEM_FAILED: *mut sem_t = 0 as *mut sem_t;
+pub const SEM_FAILED: *mut sem_t = ptr::null_mut();
pub const CRTSCTS: crate::tcflag_t = 0x00010000;
pub const CRTS_IFLOW: crate::tcflag_t = CRTSCTS;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs
index b511fc8..e0206af 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/aarch64.rs
@@ -65,7 +65,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_int>() - 1;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0;
pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs
index b252862..9ff44bd 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/arm.rs
@@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH;
pub type __cpu_simple_lock_nv_t = c_int;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_longlong>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_longlong>() - 1;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1;
pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs
index eabfe1b..1b24b4f 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mips.rs
@@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH;
pub type __cpu_simple_lock_nv_t = c_int;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_longlong>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_longlong>() - 1;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1;
pub const PT_SETREGS: c_int = PT_FIRSTMACH + 2;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
index 7bcb55a..9f08313 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
@@ -39,6 +39,7 @@ pub type Elf64_Xword = u64;
pub type iconv_t = *mut c_void;
e! {
+ #[repr(C)]
pub enum fae_action {
FAE_OPEN,
FAE_DUP2,
@@ -1612,6 +1613,8 @@ pub const _PC_2_SYMLINKS: c_int = 13;
pub const _PC_ACL_EXTENDED: c_int = 14;
pub const _PC_MIN_HOLE_SIZE: c_int = 15;
+pub const _CS_PATH: c_int = 1;
+
pub const _SC_SYNCHRONIZED_IO: c_int = 31;
pub const _SC_IOV_MAX: c_int = 32;
pub const _SC_MAPPED_FILES: c_int = 33;
@@ -1712,6 +1715,29 @@ pub const MNT_WAIT: c_int = 1;
pub const MNT_NOWAIT: c_int = 2;
pub const MNT_LAZY: c_int = 3;
+// sys/ioccom.h
+pub const IOCPARM_SHIFT: u32 = 16;
+pub const IOCGROUP_SHIFT: u32 = 8;
+
+pub const fn IOCPARM_LEN(x: u32) -> u32 {
+ (x >> IOCPARM_SHIFT) & crate::IOCPARM_MASK
+}
+
+pub const fn IOCBASECMD(x: u32) -> u32 {
+ x & (!(crate::IOCPARM_MASK << IOCPARM_SHIFT))
+}
+
+pub const fn IOCGROUP(x: u32) -> u32 {
+ (x >> IOCGROUP_SHIFT) & 0xff
+}
+
+pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> c_ulong {
+ (inout)
+ | (((len) & crate::IOCPARM_MASK as c_ulong) << IOCPARM_SHIFT)
+ | ((group) << IOCGROUP_SHIFT)
+ | (num)
+}
+
//<sys/timex.h>
pub const CLOCK_PROCESS_CPUTIME_ID: crate::clockid_t = 2;
pub const CLOCK_THREAD_CPUTIME_ID: crate::clockid_t = 4;
@@ -2277,27 +2303,24 @@ pub const TFD_NONBLOCK: i32 = crate::O_NONBLOCK;
pub const TFD_TIMER_ABSTIME: i32 = crate::O_WRONLY;
pub const TFD_TIMER_CANCEL_ON_SET: i32 = crate::O_RDWR;
-const_fn! {
- {const} fn _ALIGN(p: usize) -> usize {
- (p + _ALIGNBYTES) & !_ALIGNBYTES
- }
+const fn _ALIGN(p: usize) -> usize {
+ (p + _ALIGNBYTES) & !_ALIGNBYTES
}
f! {
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).add(_ALIGN(mem::size_of::<cmsghdr>()))
+ (cmsg as *mut c_uchar).add(_ALIGN(size_of::<cmsghdr>()))
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- _ALIGN(mem::size_of::<cmsghdr>()) as c_uint + length
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ _ALIGN(size_of::<cmsghdr>()) as c_uint + length
}
pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
if cmsg.is_null() {
return crate::CMSG_FIRSTHDR(mhdr);
}
- let next =
- cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::<cmsghdr>());
+ let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::<cmsghdr>());
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
if next > max {
core::ptr::null_mut::<cmsghdr>()
@@ -2306,8 +2329,8 @@ f! {
}
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (_ALIGN(mem::size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (_ALIGN(size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
}
// dirfd() is a macro on netbsd to access
@@ -2319,7 +2342,7 @@ f! {
pub fn SOCKCREDSIZE(ngrps: usize) -> usize {
let ngrps = if ngrps > 0 { ngrps - 1 } else { 0 };
- mem::size_of::<sockcred>() + mem::size_of::<crate::gid_t>() * ngrps
+ size_of::<sockcred>() + size_of::<crate::gid_t>() * ngrps
}
pub fn PROT_MPROTECT(x: c_int) -> c_int {
@@ -2332,23 +2355,23 @@ f! {
}
safe_f! {
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
status >> 8
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0
}
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0o177) == 0o177
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
status == 0xffff
}
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -2358,11 +2381,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_int {
+ pub const fn major(dev: crate::dev_t) -> c_int {
(((dev as u32) & 0x000fff00) >> 8) as c_int
}
- pub {const} fn minor(dev: crate::dev_t) -> c_int {
+ pub const fn minor(dev: crate::dev_t) -> c_int {
let mut res = 0;
res |= ((dev as u32) & 0xfff00000) >> 12;
res |= (dev as u32) & 0x000000ff;
@@ -2474,6 +2497,8 @@ extern "C" {
winp: *mut crate::winsize,
) -> crate::pid_t;
+ pub fn ptsname_r(fd: c_int, buf: *mut c_char, buflen: size_t) -> c_int;
+
#[link_name = "__lutimes50"]
pub fn lutimes(file: *const c_char, times: *const crate::timeval) -> c_int;
#[link_name = "__gettimeofday50"]
@@ -2662,6 +2687,11 @@ extern "C" {
new_value: *const crate::itimerspec,
old_value: *mut crate::itimerspec,
) -> c_int;
+ pub fn dlvsym(
+ handle: *mut c_void,
+ symbol: *const c_char,
+ version: *const c_char,
+ ) -> *mut c_void;
// Added in `NetBSD` 7.0
pub fn explicit_memset(b: *mut c_void, c: c_int, len: size_t);
@@ -2731,6 +2761,14 @@ extern "C" {
new_value: *const itimerspec,
old_value: *mut itimerspec,
) -> c_int;
+
+ pub fn qsort_r(
+ base: *mut c_void,
+ num: size_t,
+ size: size_t,
+ compar: Option<unsafe extern "C" fn(*const c_void, *const c_void, *mut c_void) -> c_int>,
+ arg: *mut c_void,
+ );
}
#[link(name = "rt")]
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs
index fc4cc38..f8f2d56 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/powerpc.rs
@@ -3,7 +3,7 @@ use crate::PT_FIRSTMACH;
pub type __cpu_simple_lock_nv_t = c_int;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_double>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_double>() - 1;
pub const PT_STEP: c_int = PT_FIRSTMACH + 0;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs
index 550c3bd..47240cb 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/riscv64.rs
@@ -22,7 +22,7 @@ s_no_extra_traits! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 0;
pub const PT_SETREGS: c_int = PT_FIRSTMACH + 1;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs
index 92e160d..95f5576 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86.rs
@@ -2,4 +2,4 @@ use crate::prelude::*;
pub type __cpu_simple_lock_nv_t = c_uchar;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_int>() - 1;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs
index 5d31c06..77daa4b 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/netbsd/x86_64.rs
@@ -20,7 +20,7 @@ s! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const PT_STEP: c_int = PT_FIRSTMACH + 0;
pub const PT_GETREGS: c_int = PT_FIRSTMACH + 1;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs
index 2c4b1df..e0d347f 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/aarch64.rs
@@ -15,6 +15,6 @@ s! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs
index ae91cde..8b3f721 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/arm.rs
@@ -1,5 +1,5 @@
use crate::prelude::*;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_double>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_double>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
index d0bb4ba..b28f455 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs
@@ -1041,6 +1041,12 @@ pub const AT_SYMLINK_NOFOLLOW: c_int = 0x02;
pub const AT_SYMLINK_FOLLOW: c_int = 0x04;
pub const AT_REMOVEDIR: c_int = 0x08;
+pub const AT_NULL: c_int = 0;
+pub const AT_IGNORE: c_int = 1;
+pub const AT_PAGESZ: c_int = 6;
+pub const AT_HWCAP: c_int = 25;
+pub const AT_HWCAP2: c_int = 26;
+
#[deprecated(since = "0.2.64", note = "Not stable across OS versions")]
pub const RLIM_NLIMITS: c_int = 9;
@@ -1219,6 +1225,8 @@ pub const _PC_SYMLINK_MAX: c_int = 19;
pub const _PC_SYNC_IO: c_int = 20;
pub const _PC_TIMESTAMP_RESOLUTION: c_int = 21;
+pub const _CS_PATH: c_int = 1;
+
pub const _SC_CLK_TCK: c_int = 3;
pub const _SC_SEM_NSEMS_MAX: c_int = 31;
pub const _SC_SEM_VALUE_MAX: c_int = 32;
@@ -1328,9 +1336,9 @@ pub const SCHED_RR: c_int = 3;
pub const ST_NOSUID: c_ulong = 2;
-pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
-pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
-pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut();
+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut();
+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut();
pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1;
pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2;
@@ -1633,7 +1641,7 @@ pub const NTFS_MFLAG_ALLNAMES: c_int = 0x2;
pub const TMPFS_ARGS_VERSION: c_int = 1;
const SI_MAXSZ: size_t = 128;
-const SI_PAD: size_t = (SI_MAXSZ / mem::size_of::<c_int>()) - 3;
+const SI_PAD: size_t = (SI_MAXSZ / size_of::<c_int>()) - 3;
pub const MAP_STACK: c_int = 0x4000;
pub const MAP_CONCEAL: c_int = 0x8000;
@@ -1738,6 +1746,23 @@ pub const PF_R: u32 = 0x4;
pub const PF_MASKOS: u32 = 0x0ff00000;
pub const PF_MASKPROC: u32 = 0xf0000000;
+// sys/ioccom.h
+pub const fn IOCPARM_LEN(x: u32) -> u32 {
+ (x >> 16) & crate::IOCPARM_MASK
+}
+
+pub const fn IOCBASECMD(x: u32) -> u32 {
+ x & (!(crate::IOCPARM_MASK << 16))
+}
+
+pub const fn IOCGROUP(x: u32) -> u32 {
+ (x >> 8) & 0xff
+}
+
+pub const fn _IOC(inout: c_ulong, group: c_ulong, num: c_ulong, len: c_ulong) -> c_ulong {
+ (inout) | (((len) & crate::IOCPARM_MASK as c_ulong) << 16) | ((group) << 8) | (num)
+}
+
// sys/mount.h
pub const MNT_NOPERM: c_int = 0x00000020;
pub const MNT_WXALLOWED: c_int = 0x00000800;
@@ -1851,27 +1876,24 @@ pub const RTAX_STATIC: c_int = 13;
pub const RTAX_SEARCH: c_int = 14;
pub const RTAX_MAX: c_int = 15;
-const_fn! {
- {const} fn _ALIGN(p: usize) -> usize {
- (p + _ALIGNBYTES) & !_ALIGNBYTES
- }
+const fn _ALIGN(p: usize) -> usize {
+ (p + _ALIGNBYTES) & !_ALIGNBYTES
}
f! {
pub fn CMSG_DATA(cmsg: *const cmsghdr) -> *mut c_uchar {
- (cmsg as *mut c_uchar).offset(_ALIGN(mem::size_of::<cmsghdr>()) as isize)
+ (cmsg as *mut c_uchar).offset(_ALIGN(size_of::<cmsghdr>()) as isize)
}
- pub {const} fn CMSG_LEN(length: c_uint) -> c_uint {
- _ALIGN(mem::size_of::<cmsghdr>()) as c_uint + length
+ pub const fn CMSG_LEN(length: c_uint) -> c_uint {
+ _ALIGN(size_of::<cmsghdr>()) as c_uint + length
}
pub fn CMSG_NXTHDR(mhdr: *const crate::msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
if cmsg.is_null() {
return crate::CMSG_FIRSTHDR(mhdr);
}
- let next =
- cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(mem::size_of::<cmsghdr>());
+ let next = cmsg as usize + _ALIGN((*cmsg).cmsg_len as usize) + _ALIGN(size_of::<cmsghdr>());
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
if next > max {
core::ptr::null_mut::<cmsghdr>()
@@ -1880,29 +1902,29 @@ f! {
}
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (_ALIGN(mem::size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (_ALIGN(size_of::<cmsghdr>()) + _ALIGN(length as usize)) as c_uint
}
}
safe_f! {
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
status >> 8
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0
}
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0xff) == 0o177
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
(status & 0o177777) == 0o177777
}
- pub {const} fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
+ pub const fn makedev(major: c_uint, minor: c_uint) -> crate::dev_t {
let major = major as crate::dev_t;
let minor = minor as crate::dev_t;
let mut dev = 0;
@@ -1912,11 +1934,11 @@ safe_f! {
dev
}
- pub {const} fn major(dev: crate::dev_t) -> c_uint {
+ pub const fn major(dev: crate::dev_t) -> c_uint {
((dev as c_uint) >> 8) & 0xff
}
- pub {const} fn minor(dev: crate::dev_t) -> c_uint {
+ pub const fn minor(dev: crate::dev_t) -> c_uint {
let dev = dev as c_uint;
let mut res = 0;
res |= (dev) & 0xff;
@@ -2077,6 +2099,8 @@ extern "C" {
pub fn fstatfs(fd: c_int, buf: *mut statfs) -> c_int;
pub fn getmntinfo(mntbufp: *mut *mut crate::statfs, flags: c_int) -> c_int;
pub fn getfsstat(buf: *mut statfs, bufsize: size_t, flags: c_int) -> c_int;
+
+ pub fn elf_aux_info(aux: c_int, buf: *mut c_void, buflen: c_int) -> c_int;
}
#[link(name = "execinfo")]
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs
index ae91cde..8b3f721 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc.rs
@@ -1,5 +1,5 @@
use crate::prelude::*;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_double>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_double>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs
index 1c3d8df..5ebe857 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs
@@ -1,5 +1,5 @@
use crate::prelude::*;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs
index a086540..3545763 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/riscv64.rs
@@ -20,6 +20,6 @@ s! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs
index d2cf783..97dc583 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86.rs
@@ -1,5 +1,5 @@
use crate::prelude::*;
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_int>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_int>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs
index 33a19f9..984570c 100644
--- a/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs
+++ b/external/vendor/libc/src/unix/bsd/netbsdlike/openbsd/x86_64.rs
@@ -98,7 +98,7 @@ cfg_if! {
}
}
-pub(crate) const _ALIGNBYTES: usize = mem::size_of::<c_long>() - 1;
+pub(crate) const _ALIGNBYTES: usize = size_of::<c_long>() - 1;
pub const _MAX_PAGE_SHIFT: u32 = 12;
diff --git a/external/vendor/libc/src/unix/cygwin/mod.rs b/external/vendor/libc/src/unix/cygwin/mod.rs
index b03c882..12e30f3 100644
--- a/external/vendor/libc/src/unix/cygwin/mod.rs
+++ b/external/vendor/libc/src/unix/cygwin/mod.rs
@@ -28,7 +28,7 @@ pub type nlink_t = c_ushort;
pub type suseconds_t = c_long;
pub type useconds_t = c_ulong;
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum timezone {}
impl Copy for timezone {}
impl Clone for timezone {
@@ -75,7 +75,7 @@ pub type nfds_t = c_uint;
pub type sem_t = *mut sem;
-#[cfg_attr(feature = "extra_traits", derive(Debug))]
+#[derive(Debug)]
pub enum sem {}
impl Copy for sem {}
impl Clone for sem {
@@ -272,7 +272,7 @@ s! {
}
pub struct fd_set {
- fds_bits: [fd_mask; FD_SETSIZE / core::mem::size_of::<c_ulong>() / 8],
+ fds_bits: [fd_mask; FD_SETSIZE / size_of::<c_ulong>() / 8],
}
pub struct _uc_fpxreg {
@@ -453,7 +453,6 @@ s! {
}
s_no_extra_traits! {
- #[allow(missing_debug_implementations)]
#[repr(align(16))]
pub struct max_align_t {
priv_: [f64; 4],
@@ -1019,7 +1018,7 @@ pub const NGROUPS_MAX: c_int = 1024;
pub const FORK_RELOAD: c_int = 1;
pub const FORK_NO_RELOAD: c_int = 0;
-pub const RTLD_DEFAULT: *mut c_void = 0isize as *mut c_void;
+pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut();
pub const RTLD_LOCAL: c_int = 0;
pub const RTLD_LAZY: c_int = 1;
pub const RTLD_NOW: c_int = 2;
@@ -1774,19 +1773,19 @@ pub const FALLOC_FL_KEEP_SIZE: c_int = 0x1000;
f! {
pub fn FD_CLR(fd: c_int, set: *mut fd_set) -> () {
let fd = fd as usize;
- let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
(*set).fds_bits[fd / size] &= !(1 << (fd % size));
}
pub fn FD_ISSET(fd: c_int, set: *const fd_set) -> bool {
let fd = fd as usize;
- let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
((*set).fds_bits[fd / size] & (1 << (fd % size))) != 0
}
pub fn FD_SET(fd: c_int, set: *mut fd_set) -> () {
let fd = fd as usize;
- let size = core::mem::size_of_val(&(*set).fds_bits[0]) * 8;
+ let size = size_of_val(&(*set).fds_bits[0]) * 8;
(*set).fds_bits[fd / size] |= 1 << (fd % size);
}
@@ -1798,13 +1797,13 @@ f! {
pub fn CPU_ALLOC_SIZE(count: c_int) -> size_t {
let _dummy: cpu_set_t = cpu_set_t { bits: [0; 16] };
- let size_in_bits = 8 * core::mem::size_of_val(&_dummy.bits[0]);
+ let size_in_bits = 8 * size_of_val(&_dummy.bits[0]);
((count as size_t + size_in_bits - 1) / 8) as size_t
}
pub fn CPU_COUNT_S(size: usize, cpuset: &cpu_set_t) -> c_int {
let mut s: u32 = 0;
- let size_of_mask = core::mem::size_of_val(&cpuset.bits[0]);
+ let size_of_mask = size_of_val(&cpuset.bits[0]);
for i in cpuset.bits[..(size / size_of_mask)].iter() {
s += i.count_ones();
}
@@ -1817,7 +1816,7 @@ f! {
}
}
pub fn CPU_SET(cpu: usize, cpuset: &mut cpu_set_t) -> () {
- let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]);
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]);
if cpu < size_in_bits {
let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
cpuset.bits[idx] |= 1 << offset;
@@ -1825,7 +1824,7 @@ f! {
}
pub fn CPU_CLR(cpu: usize, cpuset: &mut cpu_set_t) -> () {
- let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]);
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]);
if cpu < size_in_bits {
let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
cpuset.bits[idx] &= !(1 << offset);
@@ -1833,7 +1832,7 @@ f! {
}
pub fn CPU_ISSET(cpu: usize, cpuset: &cpu_set_t) -> bool {
- let size_in_bits = 8 * core::mem::size_of_val(&cpuset.bits[0]);
+ let size_in_bits = 8 * size_of_val(&cpuset.bits[0]);
if cpu < size_in_bits {
let (idx, offset) = (cpu / size_in_bits, cpu % size_in_bits);
0 != (cpuset.bits[idx] & (1 << offset))
@@ -1843,7 +1842,7 @@ f! {
}
pub fn CPU_COUNT(cpuset: &cpu_set_t) -> c_int {
- CPU_COUNT_S(::core::mem::size_of::<cpu_set_t>(), cpuset)
+ CPU_COUNT_S(size_of::<cpu_set_t>(), cpuset)
}
pub fn CPU_EQUAL(set1: &cpu_set_t, set2: &cpu_set_t) -> bool {
@@ -1851,15 +1850,15 @@ f! {
}
pub fn CMSG_LEN(length: c_uint) -> c_uint {
- CMSG_ALIGN(::core::mem::size_of::<cmsghdr>()) as c_uint + length
+ CMSG_ALIGN(size_of::<cmsghdr>()) as c_uint + length
}
- pub {const} fn CMSG_SPACE(length: c_uint) -> c_uint {
- (CMSG_ALIGN(length as usize) + CMSG_ALIGN(::core::mem::size_of::<cmsghdr>())) as c_uint
+ pub const fn CMSG_SPACE(length: c_uint) -> c_uint {
+ (CMSG_ALIGN(length as usize) + CMSG_ALIGN(size_of::<cmsghdr>())) as c_uint
}
pub fn CMSG_FIRSTHDR(mhdr: *const msghdr) -> *mut cmsghdr {
- if (*mhdr).msg_controllen as usize >= core::mem::size_of::<cmsghdr>() {
+ if (*mhdr).msg_controllen as usize >= size_of::<cmsghdr>() {
(*mhdr).msg_control.cast()
} else {
core::ptr::null_mut()
@@ -1869,7 +1868,7 @@ f! {
pub fn CMSG_NXTHDR(mhdr: *const msghdr, cmsg: *const cmsghdr) -> *mut cmsghdr {
let next = (cmsg as usize + CMSG_ALIGN((*cmsg).cmsg_len as usize)) as *mut cmsghdr;
let max = (*mhdr).msg_control as usize + (*mhdr).msg_controllen as usize;
- if next as usize + CMSG_ALIGN(::core::mem::size_of::<cmsghdr>()) as usize > max {
+ if next as usize + CMSG_ALIGN(size_of::<cmsghdr>()) as usize > max {
core::ptr::null_mut()
} else {
next
@@ -1882,57 +1881,55 @@ f! {
}
safe_f! {
- pub {const} fn makedev(ma: c_uint, mi: c_uint) -> dev_t {
+ pub const fn makedev(ma: c_uint, mi: c_uint) -> dev_t {
let ma = ma as dev_t;
let mi = mi as dev_t;
(ma << 16) | (mi & 0xffff)
}
- pub {const} fn major(dev: dev_t) -> c_uint {
+ pub const fn major(dev: dev_t) -> c_uint {
((dev >> 16) & 0xffff) as c_uint
}
- pub {const} fn minor(dev: dev_t) -> c_uint {
+ pub const fn minor(dev: dev_t) -> c_uint {
(dev & 0xffff) as c_uint
}
- pub {const} fn WIFEXITED(status: c_int) -> bool {
+ pub const fn WIFEXITED(status: c_int) -> bool {
(status & 0xff) == 0
}
- pub {const} fn WIFSIGNALED(status: c_int) -> bool {
+ pub const fn WIFSIGNALED(status: c_int) -> bool {
(status & 0o177) != 0o177 && (status & 0o177) != 0
}
- pub {const} fn WIFSTOPPED(status: c_int) -> bool {
+ pub const fn WIFSTOPPED(status: c_int) -> bool {
(status & 0xff) == 0o177
}
- pub {const} fn WIFCONTINUED(status: c_int) -> bool {
+ pub const fn WIFCONTINUED(status: c_int) -> bool {
(status & 0o177777) == 0o177777
}
- pub {const} fn WEXITSTATUS(status: c_int) -> c_int {
+ pub const fn WEXITSTATUS(status: c_int) -> c_int {
(status >> 8) & 0xff
}
- pub {const} fn WTERMSIG(status: c_int) -> c_int {
+ pub const fn WTERMSIG(status: c_int) -> c_int {
status & 0o177
}
- pub {const} fn WSTOPSIG(status: c_int) -> c_int {
+ pub const fn WSTOPSIG(status: c_int) -> c_int {
(status >> 8) & 0xff
}
- pub {const} fn WCOREDUMP(status: c_int) -> bool {
+ pub const fn WCOREDUMP(status: c_int) -> bool {
WIFSIGNALED(status) && (status & 0x80) != 0
}
}
-const_fn! {
- {const} fn CMSG_ALIGN(len: usize) -> usize {
- len + core::mem::size_of::<usize>() - 1 & !(::core::mem::size_of::<usize>() - 1)
- }
+consWhy this scored 25/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.