What changed, and why it matters
This commit is a routine maintenance update for the BitBox02 hardware wallet firmware. It upgrades the pinned Rust compiler toolchain from an older version to Rust 1.96.0, updates the project's Docker build container and related developer tools (like clang-format and clang-tidy) from version 21 to 22, and refreshes several vendored Rust library dependencies to newer versions. The only application code change is a small test-only cleanup in the Bitcoin transaction signing tests to satisfy a new Rust linter warning. There is no direct evidence in the commit message or diff that this fixes a specific security vulnerability.
Treat as a normal maintenance commit. Verify the firmware build and test suite pass with Rust 1.96.0 and the updated container. Review release notes of the vendored dependencies (especially libc and secp256k1-sys) for any security fixes that may affect the target architecture, but no immediate security action is required based on this commit alone.
Security signals we found
Routine toolchain and dependency upgrade
Vendored libc updated across many platform bindings
No first-party security-relevant code changes
No vendor security disclosure or advisory referenced
Evidence from the diff
The commit bumps rust-toolchain.toml to 1.96.0 and updates the Docker image (container version 54→55, LLVM 21→22, clang-format/tidy 21→22). It vendors updated Rust crates: libc 0.2.177→0.2.183, moto-rt, portable-atomic, rustc-demangle, rustc-literal-escaper, secp256k1-sys, unicode-ident, and refreshes src/rust/Cargo.lock. The only first-party source change is in src/rust/bitbox02-rust/src/hww/api/bitcoin/signtx.rs, where tests are refactored to avoid clippy’s collapsible_match lint on the new toolchain. The libc upgrade includes many upstream fixes (some memory-layout/soundness related, e.g., CMSG_NXTHDR, Padding wrappers for private fields), but these are in platform bindings not directly used by the embedded BitBox02 target. No CVE, advisory, or vendor security disclosure is present in the supplied materials.
Changed components
Rust toolchain pin (rust-toolchain.toml)Docker build environment (Dockerfile, .containerversion)CI style/tidy scripts (.ci/check-style, .ci/check-tidy)Vendored Rust dependencies under external/vendor/Bitcoin signing test code (src/rust/bitbox02-rust/src/hww/api/bitcoin/signtx.rs)Inspect captured patch +14839 / −13798
diff --git a/.ci/check-style b/.ci/check-style
index f61a182..0030b91 100755
--- a/.ci/check-style
+++ b/.ci/check-style
@@ -8,7 +8,7 @@ set -e
# Exit on pipe fail
set -o pipefail
-CLANGFORMAT=${CLANGFORMAT:-clang-format-21}
+CLANGFORMAT=${CLANGFORMAT:-clang-format-22}
RUSTFMT=${RUSTFMT:-rustfmt}
command -v git >/dev/null 2>&1 || { echo >&2 "git is missing"; exit 1; }
diff --git a/.ci/check-tidy b/.ci/check-tidy
index 1b300ca..0bb9d11 100755
--- a/.ci/check-tidy
+++ b/.ci/check-tidy
@@ -8,7 +8,7 @@ set -e
# Exit on pipe fail
set -o pipefail
-CLANGTIDY=${CLANGTIDY:-clang-tidy-21}
+CLANGTIDY=${CLANGTIDY:-clang-tidy-22}
command -v git >/dev/null 2>&1 || { echo >&2 "git is missing"; exit 1; }
command -v xargs >/dev/null 2>&1 || { echo >&2 "xargs is missing"; exit 1; }
diff --git a/.containerversion b/.containerversion
index fb1e7bc..c3f407c 100644
--- a/.containerversion
+++ b/.containerversion
@@ -1 +1 @@
-54
+55
diff --git a/Dockerfile b/Dockerfile
index 47da164..6ec2c7f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,9 +14,9 @@ ARG TARGETARCH
RUN apt-get update && apt-get upgrade -y && apt-get install -y wget nano rsync curl gnupg2 jq unzip bzip2 xz-utils
-# for clang-*-21, see https://apt.llvm.org/
-RUN echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main" >> /etc/apt/sources.list && \
- echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main" >> /etc/apt/sources.list && \
+# for clang-*-22, see https://apt.llvm.org/
+RUN echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-22 main" >> /etc/apt/sources.list && \
+ echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-22 main" >> /etc/apt/sources.list && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
# Install gcc8-arm-none-eabi
@@ -35,7 +35,7 @@ RUN if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \
# Tools for building
RUN apt-get update && apt-get install -y \
make \
- llvm-21 \
+ llvm-22 \
gcc-10 \
binutils \
valgrind \
@@ -67,8 +67,8 @@ RUN update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-10 100
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
- clang-format-21 \
- clang-tidy-21
+ clang-format-22 \
+ clang-tidy-22
RUN python3 -m pip install --upgrade pip
diff --git a/external/vendor/libc/.cargo-checksum.json b/external/vendor/libc/.cargo-checksum.json
index 0edc0b8..f14a663 100644
--- a/external/vendor/libc/.cargo-checksum.json
+++ b/external/vendor/libc/.cargo-checksum.json
@@ -1 +1 @@
-{"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
+{"files":{".cargo_vcs_info.json":"bb91cfc9fa4998cb90da085dfe301171099d9086a2e1c279ec4357dca020d54e",".editorconfig":"e57fecd6b82cd69640ca1bc4e44f0c7acfe5fc12f641f14af9536e323b4159db",".git-blame-ignore-revs":"761aa385c661241fa77c15b502c361398cf500bbb9f8c3a4579b412c4c6249d7",".release-plz.toml":"fcf2d382c4a2abd96caf9cc391b63e0c94d5832f5c48e9ab9eb4b2c847c0887c",".rustfmt.toml":"c88d9ba0e884291a2904d43cc7b940fafcb1ab443cdb7bcfca7117809c4f2816","CHANGELOG.md":"5674c0fd635fdf9d1e7a097682bef5b0bbfe4081a0ab3afcb51269e0b1ddf573","CONTRIBUTING.md":"a79d97a32ebab59a5d7b360f9f9bd5b8e98b58cd83a7c0853059347f1f81cb53","Cargo.lock":"f17b0353445adfdfe6b7866c93892504a98a2b0a87a6491c6a27e8c96ac54010","Cargo.toml":"8be66aaed0019b0ea14d01ff0b7bc8d89762e3ffea6e58e77fe9fcda083377e4","Cargo.toml.orig":"c2c4bbbb284ffab56ae0beb8173743381f3873d519e1048ae0037d44ff3c617e","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e","README.md":"81973692a256789afd2f3834accc014f93e4b4638d26b99c29cafdb065514c63","build.rs":"f722dcaa2c68d449a6f0c3f7c69b9dbcda1cda1960ade41679d2dfb89f182bfb","src/fuchsia/aarch64.rs":"34105478e20e9ce40b9e484eea6494e2408fead17c13500da90a2d44d996ce63","src/fuchsia/mod.rs":"b4fc067b8408844fb80be9d017896e41763e2595fcd3526c4fcfed809dd90459","src/fuchsia/riscv64.rs":"a91ae8276df139f6181591be7209f9a68e9f3de5eec881c2e1c9768c53c4e292","src/fuchsia/x86_64.rs":"543ea567b29d646afc026956ee5e652c10e87256789058e7e39f91bf2fe8bf14","src/hermit.rs":"b8e56d680321459a27740aa95fe6576ee6d4e223abce74c0a4795fe998c6c30f","src/lib.rs":"48253daf0a1d484f82cfbe8011dbe33e42ba73b4eb1cfcdc9e5fdc20c9e77165","src/macros.rs":"e1a7439f50a1d7a47a3268b625e36e7c9a916909f5b3a7fae35217e454e5680c","src/new/aix/mod.rs":"df0de5d8e452a8abb27727b8451b2ceff3bb856f7e5d9e9306df5177e4c6326f","src/new/aix/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/apple/libc/signal.rs":"a960b6153775d791055b278534f79e21f8ff76c2c0c2891271e7abdf26e193d3","src/new/apple/libc/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/apple/libpthread/mod.rs":"1e99efe513b0ee1fa6e53daf5950fc027380b1d71d793eca9e5b22af7b331b5b","src/new/apple/libpthread/pthread_/introspection.rs":"3c797ded6d1a55670f9537a997407cf2267e6c7e7dbfa360d32474e2432979af","src/new/apple/libpthread/pthread_/pthread.rs":"c2b680120ec8db839e702c4340bc39748ac34c806b5fc08acea0a4593131a015","src/new/apple/libpthread/pthread_/pthread_impl.rs":"57a9925a75b79d092c65288b8a8eb21bfb6c7de4c70d37a49018b4eb8b32a646","src/new/apple/libpthread/pthread_/pthread_spis.rs":"1ba51c251249822fae222db6a19e17278ffffc424fc6eea30282a6171491edbe","src/new/apple/libpthread/pthread_/qos.rs":"40f816fb6cebd19ead21197671e5425b454144515ee4b966d00db32ba6b0dfe5","src/new/apple/libpthread/pthread_/sched.rs":"7b22a3204e72d5013ebac7b830235d50883aefca86d720f1f38b93d54e309477","src/new/apple/libpthread/pthread_/spawn.rs":"daef8af8ed0b3d16922c2f5a511a67f57f69b5f80dfe37362bd0b410213f95ca","src/new/apple/libpthread/pthread_/stack_np.rs":"d1b6e2eab1850c303f8eec4059b3e8ec57d69eb47c216243f6b4b7523761fc29","src/new/apple/libpthread/sys/_pthread/_pthread_types.rs":"a7a4307d7c3f91a6b03f76599fac5f40de556e5652123c6bc3b95df2bfa685de","src/new/apple/libpthread/sys/mod.rs":"337265fe49d77a7dcc879cd23e4f5baedcffab4808433dfb6ab9deb4ab490380","src/new/apple/libpthread/sys/qos.rs":"a6297cbab4089b330416bfcbe13b6d7aa8e75352299295046429b2e9d3bada42","src/new/apple/mod.rs":"45464bc6661b88e55856acb6ce4c47467a9aba44083e42b0e0d87d80ca3c11fd","src/new/apple/xnu/arm/_mcontext.rs":"63f1c62b47e7d7181c2b85f3cd3833c69a29eb0cad37a5754bfa6b5954ae7f6f","src/new/apple/xnu/i386/_mcontext.rs":"50543eaa5cf1d87f900b0c3e531dbfefd7586e1be2be3406223b2319edfcb7f2","src/new/apple/xnu/mach/arm/_structs.rs":"e284c112a8b045d7507575c1cf6c65b8fe1a811f53b6d6cf152bb8e18aedaf8b","src/new/apple/xnu/mach/i386/_structs.rs":"d7316b7d3fa5e55a5818cfd8a1977921bb14e07133648cffa8f4d9da2e31a604","src/new/apple/xnu/mach/machine/_structs.rs":"82f5a7f751897c882ed4c378d6282976ff21cf0c9cdf7f3be3cecd369a63b6f8","src/new/apple/xnu/mach/mod.rs":"46aad5c7197df2cc57c4392d9019034236233f0240bc7975f9e22ac33c9d40ed","src/new/apple/xnu/machine/_mcontext.rs":"166b0a450b730e2a943ca08a0c70061effb77ff9eff6f41c7b0c51b2d4215db9","src/new/apple/xnu/mod.rs":"b35c4301d54dd2a207c32750f09f989dcc2de6e470a5cfa936de69c550555c7e","src/new/apple/xnu/sys/_types/_ucontext.rs":"1651132d39042f0fc8cca7a23c890da0031b74359472189f851fb3458f2fde3e","src/new/apple/xnu/sys/mod.rs":"734e1803a311320fd6f0b7b10929fe90a0b27322e792c95d42c620cc59b25563","src/new/apple/xnu/sys/signal.rs":"a03cb64ec19326657c87ff8a5a31c2e6bc1deb55f9a7343ab1b2420819ed72bf","src/new/bionic_libc/mod.rs":"5b2b375123095ae59617ffc1b5e13970ae685c823e3cecf014a173d56162d77c","src/new/bionic_libc/pthread.rs":"d40b7f8421cf78d61f23224c3bda17407e40a1c85dd8122ca4f290624b21d8a1","src/new/bionic_libc/sys/mod.rs":"570e7c97f7c1efb14e167a3f0688547fbc907ed9dca93ad6d90dc719289cb6f1","src/new/bionic_libc/sys/socket.rs":"19877b1de0e235a01734f9aebf20fc1ff1a01fd17302ed1a7d7b520a9fa68edb","src/new/bionic_libc/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/common/bsd.rs":"8282cc2b87ca3afc6b01216fe3c3fe1818a3d57e95aa8d1e1a36cc5af1660609","src/new/common/freebsd_like.rs":"156dce9baa6b0ac57d483ffb582a913b9e4944cf10bbb5711a64da5f496a55c2","src/new/common/linux_like/mod.rs":"d42e65b3d6fccd5ba85a8397abb28267a96bfb76b6b47754000fbe9332c03fe4","src/new/common/linux_like/pthread.rs":"a1a33b1e27cd159ab1035c73e72fa8b0c266dd5a28f1079ad74d3c370857f097","src/new/common/mod.rs":"5bcbce2960ff0840ab67a1ba5011009fa1f0f7697cff745d1461bf2b1460ddc6","src/new/common/netbsd_like.rs":"4327dd28d929f2c7b316f9241c44da6f6069d3db4381fb82700ec6d70d749041","src/new/common/posix/mod.rs":"f64b9d7f78e924529c62f2cd78199075eb334e0db9479cb59787f2740bd82d51","src/new/common/posix/pthread.rs":"252decac53dde79fb2f84a7b9aa0ec9784d42cecabc3b9abf51b136309ffde75","src/new/common/posix/unistd.rs":"3f633a8c6776d1442f014717785fea3f068d1d3edbfad545d445f8076cb58447","src/new/common/solarish.rs":"ac208e1ad95d07b7528419fd9c573612d58af3d50766816b81667570ccb8b3b3","src/new/cygwin/mod.rs":"9de4cba157252e7731256d60192468f5a759ebd33ab2b509819ffc7557adced5","src/new/cygwin/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/dragonfly/mod.rs":"7b96df7e566874a736d0c33ffc9e75a5f80e674da990cb664556728769ff25f9","src/new/dragonfly/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/emscripten/mod.rs":"d0ec81b919d9d078bb7d66d9429c08b609e2b0fab512be30aa22cc00fa620660","src/new/emscripten/pthread.rs":"65b51deca94ba18d81608191a5523c37f9508a87a76934006d1173869996531c","src/new/emscripten/sched.rs":"6f0a5b3cefb42bb01feabf34ad92d4bdbe5743263d4cd7b754baf921da81a127","src/new/emscripten/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/espidf/mod.rs":"c89c7d3b96583d84888aae0c463dc49b5af61b34a97e9cde52fb9b62d301a023","src/new/freebsd/mod.rs":"133739cee4497a5539bf0bccfd42e0db0cbab9983457c641de3ac8ef94bb1b63","src/new/freebsd/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/fuchsia/mod.rs":"c15b2da96c52281e86d4f114522999e6e713723f4950d62c2d544be641b28722","src/new/fuchsia/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/glibc/mod.rs":"1867ccaee8fe486b3723d683db23b40b2ff0c029c9d6281fd63d6de9de77d4fd","src/new/glibc/posix/unistd.rs":"b8528999ecab0a4883c0d89b1cb3c585a666255ab4a4bf5bfc705f7613edd8f4","src/new/glibc/sysdeps/nptl/mod.rs":"36c75e15c94efdc9db1ff8747cc557b5a314e0e3fdb006581f4a96b322ccde9d","src/new/glibc/sysdeps/nptl/pthread.rs":"b3bb630c736ffbe99081f5bec4c99f50cc36fe159b8059594b1d6965d178936c","src/new/glibc/sysdeps/unix/linux/mod.rs":"9a7c4d5c62c37166b35d2daa69a3dc8f5b4548ef49955463ae41393e260a4cb5","src/new/glibc/sysdeps/unix/linux/net/route.rs":"d8ec70bbaa919692430fdd608b70db11dbfe86b202760727dfd474a4b25b35c2","src/new/glibc/sysdeps/unix/mod.rs":"aa6d2fb4c32f5e1139cae14bcf7cee5935657aeff97df9c064ae9acd67620d04","src/new/haiku/mod.rs":"b3863768692c6da24fc28fdcf0c29a9dd9e3a84f301d4bee6ccc4f802befc4f8","src/new/haiku/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/hermit_abi/mod.rs":"25e5d698f292b95057f18dfe203fa96316326e0ca103da532190bb17c29cfdcf","src/new/horizon/mod.rs":"44b47e15d429026d369adfc16a4e9783cdda1be3d0a04f17c283da06573df886","src/new/hurd/mod.rs":"190a149192c237634df3e49c4834d05299aee91a3d399f356d97c36d35571a59","src/new/illumos/mod.rs":"eb5dd158844f63375a6fbb881d63279b12865342d1bb0da221216b7aa9c474b5","src/new/illumos/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/l4re/mod.rs":"d0cd277d7c0b32cd5d3619f7a188f3e646da8f71ae07012dccd921b3fb2b2300","src/new/linux_uapi/linux/can.rs":"c382fb2451b40ab1b5ea070f54287955a17f25ea693650f5ebd1ef099c8d8ceb","src/new/linux_uapi/linux/can/bcm.rs":"1718a1c3aae686d18ec83dff1560439d61de244bfaf332256cc2b42b85fe5249","src/new/linux_uapi/linux/can/error.rs":"5c5ef6d7c2b9432ebbf6147f96cd260e10686f449f879e64db4757670a6ec638","src/new/linux_uapi/linux/can/j1939.rs":"ab2a330c3d3cca3ac6a693b381661772036e10a6dc0004db3809a4f42cf724ba","src/new/linux_uapi/linux/can/raw.rs":"933ed151ce976b869b239abc031bb626dd3fa48ec3dd63d2c2b1b891c7bedf1c","src/new/linux_uapi/linux/keyctl.rs":"c25ee20a54a14d56de2c886c32f718b7a403b18152cc81bd7726f974cdf5b3a3","src/new/linux_uapi/linux/membarrier.rs":"5d6b55b1f7410aeb24ce6bcdbac0d33144b14dc048641ebccb5adc697ea7de2f","src/new/linux_uapi/linux/mod.rs":"c17b121acb9e3bd807ab58e532a19bf76f7a19a38ae94e7812beb14ddc3362b0","src/new/linux_uapi/linux/netlink.rs":"1ee00c018a23cac0ade157d6c725b3e6f0b69b23b46b9690c5ab398c889527b7","src/new/linux_uapi/linux/pidfd.rs":"6500c63d1ccaf4b7e14a36f225fd309bce9de80a50b81bca14bc6bded6ebd04e","src/new/linux_uapi/mod.rs":"76cc081d46d008fe05fbb3d7f007fb62374d4efd9464916bbeb9b20c288c6416","src/new/mod.rs":"6d51a5ce7bac641973049c5c96e497f2dbe33292f1b7b245da2e75658164f9fd","src/new/musl/arch/generic/mod.rs":"106383ed35cb7526bbbb0e16ce3521ddb2a9e61fb533687922fc9b43cd654af7","src/new/musl/arch/mips/bits/socket.rs":"eb4dff2ab581eb893e0e6547ae7a7d86453caa069b61272a818256280a23ca71","src/new/musl/arch/mips/mod.rs":"cc6c0a24ef77b7c404887fb5b7a7fd15c2a79e2a3396531ea0058636cacb3018","src/new/musl/arch/mips64/bits/socket.rs":"eb4dff2ab581eb893e0e6547ae7a7d86453caa069b61272a818256280a23ca71","src/new/musl/arch/mips64/mod.rs":"40242447a56ed21249f0417f87a7ccd074a366f19eb1353d94e904f370e0f20f","src/new/musl/arch/mod.rs":"31a73fedfd8606e04352425fb4917181f2d7376f445cb61a5460bd682ce29ed4","src/new/musl/mod.rs":"6b2e092bdc907d2d236a5f6ad977d931e13e99425a3738a62769220697cc13de","src/new/musl/pthread.rs":"e76e8f71cba55b45e4aa954970f939142595b828fd7e83586fc9145299a3b1cb","src/new/musl/sched.rs":"6f0a5b3cefb42bb01feabf34ad92d4bdbe5743263d4cd7b754baf921da81a127","src/new/musl/sys/socket.rs":"3f87fe0efd653477e005340d410c36fe95766f54bcfbdbf6bb4e99589ea2f9fe","src/new/musl/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/netbsd/mod.rs":"d7bddddf98b09188a6fe541feaaaecdee85eb55fee2aa3cf670f7e6afa4ac342","src/new/netbsd/net/if_.rs":"5083d0f9d84de47c8b6fae60c9bb74d7c0586a80ccb8d625e5e2b4876e7f9444","src/new/netbsd/sys/file.rs":"a30095d85a4f8af49494f9b38114415f5c30e1d96a8c882eb7efd83a1cb6816a","src/new/netbsd/sys/ipc.rs":"91af85c26b3dca2a0661c820871d176baf29c00d53540f4807b9b28f9f3dfae4","src/new/netbsd/sys/mod.rs":"2dfbbf18e7585b64acfeb2f39d0495b50c142caec680db64bb4655e182347262","src/new/netbsd/sys/socket.rs":"a926087991d4cd7ebe31a3f626b5a196047c20955e9e3c99f5abe50b899b1ef3","src/new/netbsd/sys/statvfs.rs":"875c73a2c18ef78c7363b2196282579b88beca2d42ed24bda4fe8e7800db9bd4","src/new/netbsd/sys/time.rs":"ec835d204fa206fdefab0b3b0e2dad3c5dc99ae0f34103d11f410fba7a098ede","src/new/netbsd/sys/timex.rs":"1b476328c16ce06e316485bd9dc751f31e51f63d0c07e438bf3227e66da07768","src/new/netbsd/sys/types.rs":"a0ec3ac038f0026c285ebfd869a8ae062117b1ff29855cbcf570f7f55860c854","src/new/netbsd/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/netbsd/utmp_.rs":"cbd35108f4ad7fd3c4fc65b888ba7813a29e3ed4af7920604df8085345f81973","src/new/netbsd/utmpx_.rs":"27171f826d6d2bf962a1d973a3427477ae960ad5dccc947c481d45f17ae645f0","src/new/newlib/mod.rs":"046372b698393e20436c85b28dac6f02b5cc7d599d134637bbdaa89f2530d1a6","src/new/newlib/unistd.rs":"15e74fb2c22e2343faa06a7a61baca198d7867cd70f8a4ead6cdc1f4fae24905","src/new/nto/mod.rs":"2e80a71385d3344a5f0b95b8d509148b52ea1a253d87e8f27345956d119f7e58","src/new/nto/net/bpf.rs":"1ee0b92315fb2926085777a024cb92d7c1f71328eca1af09a3db0417f180d263","src/new/nto/net/if_.rs":"cdea96569bb155c7372da481dbf00630aadfadb68ef07bfe94d258a6c600b82b","src/new/nto/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/nuttx/mod.rs":"7dbbf039987cb5ca17d2a1a562dc967de1c31b970568f728339cd5b9c8e05e25","src/new/nuttx/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/openbsd/mod.rs":"7d86ff099ddfdc8c383f49a1f6fa9c1169810cbe0c1c57d0e86dc14cb1d87320","src/new/openbsd/sys/ipc.rs":"dd37c821138dbf723d637319ad0849e9ed0b2fce1d498e7e38627a8b0a8bf142","src/new/openbsd/sys/mod.rs":"a8fd8f1cb50bffb34db04d1040048e7c23043fea834c1915453b5d539034a845","src/new/openbsd/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/qurt/dlfcn.rs":"8bfec94f78786e2eee9d4306efbf9ad977cf2b3f0d930f8cc65186e922371a9a","src/new/qurt/errno.rs":"2456f7f7557e4716f8b65b1ef67281f795c70ad1d5515d6b001d26c07b943af3","src/new/qurt/fcntl.rs":"ce176e0c9fb6799004cfc9f1fe5eb20ab7226cf8d304bf8ae9cfe4e3f37ad680","src/new/qurt/limits.rs":"5c76ea0d9560d5da65fe7ecaba8e45766dd56b203523979359e5436062306359","src/new/qurt/mod.rs":"6325ef45b6ad49aaba335a52b85a90eceaf5b2d782c06210edefc1999c1fcf99","src/new/qurt/pthread.rs":"8e64d22f2c73ea8559bd7c4de5d21b077969638e1e12c979c1d77c1a2ea2aaf2","src/new/qurt/semaphore.rs":"eb995a92cdead52ee61c3f498c7e408430b8430cd6cb6be74b47e6728c6773ae","src/new/qurt/signal.rs":"3d9b0cdba135af86fed0846b710fef48edba54a034e14147c7e7785db282a335","src/new/qurt/stdio.rs":"280e1faa29c7e2749469a9f9c4b0fa4ba8e0cee42a6e53d9376be6b8e3b8c2ff","src/new/qurt/stdlib.rs":"7d2aad4837a4be08083be8153ecf3e95d8c70469598fbad25793c4cfed1939d8","src/new/qurt/sys/mman.rs":"c0b862bf262564507796b1cdda967c601d265e6a1f1abfe1a5b6d45aa0742df6","src/new/qurt/sys/mod.rs":"e8585c4d447d02d1f4b72183e3d8b8c0d57301ca7099534ce2086a7a3d384b7d","src/new/qurt/sys/sched.rs":"12dfe86d5bb8c96a8624b3a408df7bc1595dfc71ca870e9ea586f68a32bc67f6","src/new/qurt/sys/stat.rs":"bbd98cd523dfc7e34c163bc2d397be8ed08401fe24d85d617b581d31e5bdb708","src/new/qurt/sys/types.rs":"c23c7f02eaa198f04991f0dede9e55279effd49ec4a341fb13064f68c19f24ca","src/new/qurt/time.rs":"598e21d7205714c2f8c92e7dd1f6f7162d5552c453ac68aeb3d38346cff52e4a","src/new/qurt/unistd.rs":"49b2b023a1276f9de2e093f03609e8cb5b0cefa9f0ea96b5bf3009d159b0dcd8","src/new/redox/mod.rs":"aaeaa40c0bffde42973cd1809c1c845075f92fac95a074fe3d01d4fb02dc0992","src/new/relibc/mod.rs":"5c6955e052d8b7ead97179e356c369ffcc435e09fcca4def3e100568845e7296","src/new/relibc/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/rtems/mod.rs":"8ad621434ced0a9d1c0ed5d68514f59b0c8bd4c77fdad81eb09e671e7a42cf1d","src/new/sgx/mod.rs":"c500dc72eff5cbf99c9d7e0e3f1faa3c680bfd7f6ac0166fa1a35fd0d7e69f41","src/new/sgx/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/solaris/mod.rs":"ce8a152ebacb9e8e0d87829d166e3ead64222ead397371bd557e18eefdcafe3d","src/new/solaris/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/solid/mod.rs":"dc5c3c8a627972865ef0a968125e74b2f87636dc89dd2df0f7cea9a40d7c6beb","src/new/teeos/mod.rs":"1d69f212e2a848a32292eef9ad16a44a8d5cf80c7d43db5f445dbd1a49400e3b","src/new/trusty/mod.rs":"3f009fef70cbe062126c82f1f9274cba60b12d3766b825d66326666a1f240fc2","src/new/uclibc/mod.rs":"c3f988f3eb289ba6bc3b2535b82163a7ff160288b7494c156f0fba62143cf2d5","src/new/uclibc/pthread.rs":"ab235319003806c5f20aef5f851af472480e88ff13d2a5f730870efb95e7982e","src/new/uclibc/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/ucrt/mod.rs":"4fd3a973de4c4c6349e76320e09b13701ac284e7ae03c671054b1eeebb86215d","src/new/vita/mod.rs":"196d6ca5c9b1ccc602a6270c3cf0b0bdbd39246066d1a8385df03ba45b31d368","src/new/vxworks/mod.rs":"fa569763957eb87e7e1ce5fa07293116c66661ff0c21d277fda5b30c61451176","src/new/vxworks/unistd.rs":"bcbb65f70759cd84c81fc24ea36aac423edb8f9d7148f65b545ee63954411fd1","src/new/wasi/mod.rs":"2a74140697bc528193214aad11edc632923bd0cf8350d24f6d600f849dd19e19","src/new/xous/mod.rs":"69016c5c153d9a14003b15558cab96b4691a927586c20ca493fc8d3bb65594eb","src/primitives.rs":"ea7e28520f5f3991ab444f9262cb8497a8794ced2cf5e1754795fe82ebed5fb7","src/psp.rs":"081cf4e5127ba10ebb62a9a5f8f849dd92742693db443db429d446ee472b5d41","src/qurt/mod.rs":"5af8edfb34f5431586b7ae00b341daa4312737c1e39c16348b1fff1d1cb8c642","src/sgx.rs":"964d6af358f5c85f948275090e5a7854e0169c43b5c338070b6a4cd156ebc9e6","src/solid/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/solid/mod.rs":"0b5a07cf7df8227fecc13ea5b7ddf0bb9520c8be44bfb8c15f9449715911dfa0","src/switch.rs":"5db5be2d9c235c00f74b25cceabdf2ce5ec9e1936f991815513e4edf5dec0d56","src/teeos/mod.rs":"ad18343da08ebb6c1fba77fb8efe9ce4551519bea617c1a000aa92f3e50b8565","src/trusty.rs":"cc90bf6b35a515021a3155aa3cc5fcab33457b8fbb2ac7259f0b694d33625fd8","src/types.rs":"f0fd20e0fc88950a4c6c3bc24b24ae5c2ce47f3546eb1ab3f182776bf5d26093","src/unix/aix/mod.rs":"89a4848c84c15b827021da8b92770d73505bb2edf3ca2429dbcfd007dec02721","src/unix/aix/powerpc64.rs":"724b02ca3afb2722930de172b3144a6bffb70792612a7fbe53553cac58bd2ccc","src/unix/bsd/apple/b32/mod.rs":"30a6d351260806e98666ee4ba64b783d1fe1d8b1d32c3ba7766bd5d638dab2dd","src/unix/bsd/apple/b64/aarch64/mod.rs":"bf2e39a80c8d768c2969197b80fafa50608ac0186b4f4aea53e7fa8bf40d2214","src/unix/bsd/apple/b64/mod.rs":"2619b6afd99e938157753c436e969aa1703b0404b913e456e469df5c6d69538f","src/unix/bsd/apple/b64/x86_64/mod.rs":"ff16a360cb478a4c2e912b9779a806d0e3439e4c5110e0325c82af5ee8429591","src/unix/bsd/apple/mod.rs":"953ac89b5a2ff86e6229fc774e63aea296d6c9710e99c7b95b9bfb5f3a09f154","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"3ec640c35a0b5c0dfdf3fb981e6c3ac74e33781941ecca67390d076b167b5564","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"f13a68b825a58596b5d3339378b0812b778481a291aeacb41de74cb65ad66d3f","src/unix/bsd/freebsdlike/freebsd/arm.rs":"d627ed0bf17932ec0e3226944a4f9714805b27a953778b309d914545cf21b82a","src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs":"316e70938d2b050fd67e5aaf0bcdd0a70d55f195b26ce4ad6055cdf05cea2e61","src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs":"811c3f1aeb70dfd051abc9d3357e8eca9564c08b85d3ea6f81caacfa559e3060","src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs":"87fdf9253ff788b9b66d0bd26b1e7e401e80d165bb4278833dfb80046ee06064","src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs":"7153ee461d9c41e5b849603561dd118091af53a7c990d94a171a4e1412381ec8","src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs":"bee7fcbb5ff8d1a011b56afa025bcab87bff3e3f90d5d4e0bbbb5349f5bc6b5f","src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs":"64c4bd82eaf30a2681417f982fce28de7d1b0743bfaa14004692a56cee44be21","src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs":"4dbfaa01fce15bcaaab3d70f9f8da3b2e34a93cb2ca0d380b582926bbe43c2ce","src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs":"55c0ce55e6c140d9c0c8b3fce76b23e975eff6c4d5eeb14c9581f8e51638e34a","src/unix/bsd/freebsdlike/freebsd/freebsd15/x86_64.rs":"d6e66809e109dc779efe5584b79d34fcd6fdba91973a415d64ae66f481f45940","src/unix/bsd/freebsdlike/freebsd/mod.rs":"ab3734f8aa742fe5c3b5e31c29f0a99e7522abe28b3f7560ccf01f7c64305ca8","src/unix/bsd/freebsdlike/freebsd/powerpc.rs":"af7a43826e3ca9e5e7c3d7c1b50defa482074fd9909de3ee2e52cd0109c1a950","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"f7be922bddd7a4b7da863d6aba057aab2d27f500c7101596bbaaccf075133451","src/unix/bsd/freebsdlike/freebsd/riscv64.rs":"69242a001ab21b6e06b7442c37a89dbc5a67660c7c3cade1d46b65adf32a5669","src/unix/bsd/freebsdlike/freebsd/x86.rs":"5165242f0c82040898dbf711294ba45c5ab2635d39d0bbf9cc899b816415e2a4","src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs":"745b6f0c357ea732962d882d0c60b042c59a173629ad64fc1951c4732bc31d29","src/unix/bsd/freebsdlike/mod.rs":"ff55989e585cbff86b91fff528d8edf88aab2433a63b004f6c0feea09eb35eab","src/unix/bsd/mod.rs":"a51588c418deaa58acecddc08c3578cd45659af7a6aec055447ec05143534b0d","src/unix/bsd/netbsdlike/mod.rs":"78f8873b9b91362253031ad6d3d6ee61640496b1c24b75b3ab9186e1eb35a545","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"ba2425edbf025f13ab3c3534d1671d310392df3a7d237539817d9cfa675971c8","src/unix/bsd/netbsdlike/netbsd/arm.rs":"8dd57613695dec1b2104ec35839f0b9b6d234c6cc80365e9fef9ca977c1865a0","src/unix/bsd/netbsdlike/netbsd/mips.rs":"20cdd8d1427c986ecc3fcf7960d337917a13cfd8386dd2d54f8693a23d60892f","src/unix/bsd/netbsdlike/netbsd/mod.rs":"a782d53bc9e06c87c6c8b8182ee79cab693ce39be7d9ecb9dcd7ca285284734f","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"c19c4edbc73b5a97b51e3e2ad39b9fee02ad15e80c70ceb3a1abfe977e5c0ead","src/unix/bsd/netbsdlike/netbsd/riscv64.rs":"f446c996f00e4d15fd25461a30c767c05d083df9e047b0da497ce7c545acfa96","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"d50816e830225779ac9e9a55a7e3e097882153d72987061d76a96ee736c8af9c","src/unix/bsd/netbsdlike/netbsd/x86.rs":"3006b6a086c0241f5383ca101e7b9357368d713f9c38400633491656d110798e","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"13dd36a0db740930155b5f28fedfac606c7291c0276bbf2c2b3fe03a4dbd2a51","src/unix/bsd/netbsdlike/openbsd/aarch64.rs":"13c91b304dfb5c3c26777863827c7b3707fe245fcf50da32caab641aff998c63","src/unix/bsd/netbsdlike/openbsd/arm.rs":"f064d935f416ca9f7e5e767b9b46da2250c997d667c0c7f4b4c7dfe02d0258c3","src/unix/bsd/netbsdlike/openbsd/mips64.rs":"bee7664d88f8451ae22552fc0721b6b6a6dee2493cc42bcb9829c1e47e4b05f5","src/unix/bsd/netbsdlike/openbsd/mod.rs":"9943458aaf3a35ce0d3b259b0b666d29347b04cb1a1722e6450073e71f894398","src/unix/bsd/netbsdlike/openbsd/powerpc.rs":"f064d935f416ca9f7e5e767b9b46da2250c997d667c0c7f4b4c7dfe02d0258c3","src/unix/bsd/netbsdlike/openbsd/powerpc64.rs":"1f62a42e2970c42de9e3492fbf3cd5b45410889f033743579266342d1a9e2a00","src/unix/bsd/netbsdlike/openbsd/riscv64.rs":"b2cf3778bfb51d1c0277f0e92963a04f734be3e29879c6c09a25bad2d9b5ab6a","src/unix/bsd/netbsdlike/openbsd/sparc64.rs":"8d4c5a4cae63e09e1c156164ddc82e0fc77926841d4d4e419dd2e7a7b7145f58","src/unix/bsd/netbsdlike/openbsd/x86.rs":"e6da2fdff7706fd3eac147d3aaf16afdd8542f231f502660d1d89c79b5eca21b","src/unix/bsd/netbsdlike/openbsd/x86_64.rs":"bc7ed75ce66059aafa7a86986aefff267b2c951e47558453fe13ce1bdb48dc0b","src/unix/cygwin/mod.rs":"8ac436c95b101a723ed7e217a09857b14386c0f75b865b2880c6e85d1dc2830d","src/unix/haiku/b32.rs":"c3f8678ceee65a3094d8133b0d1a94470860e0b1867977f0569c52c5a20e039f","src/unix/haiku/b64.rs":"f97ce9225f4710893dab03ab3e13bc62152cc84f90c597ec88f6dc1f4c27d242","src/unix/haiku/bsd.rs":"4d9af31fdac2561ee5f942dca97dd2f48139ca74660d40b854b307fa5679d1c8","src/unix/haiku/mod.rs":"dc2f3cf5729d4011bbd9c432f6049c2aa48f88c9fc0530a4323d6bf22333c0f4","src/unix/haiku/native.rs":"85836b1063ddc01c176c61cff8c006cf6f5dc4b1f465f41b5c330aa372a44ab6","src/unix/haiku/x86_64.rs":"def40c16609b5d62c3cdbba6a38340720a96b326ad98d53838554e4b6878d2ee","src/unix/hurd/b32.rs":"501f426f7aeb60acf4119064100dd94bbdfebff2cec785428708059d853dc123","src/unix/hurd/b64.rs":"b9b2082e721a5ec89ba55fd5a16bbffcc8a05ca7cef6dbfbd78aff0806cb931f","src/unix/hurd/mod.rs":"ec193310a0cfa0cda5d25664f7dfdeca87335029462541e56f5bc018068a748a","src/unix/linux_like/android/b32/arm.rs":"5c6ad12746052b86846f9d7c3bd484d15bd3e2113785a19220186ab2a9bb31ba","src/unix/linux_like/android/b32/mod.rs":"75b19fe5b1c051477c56926e2fe3e1557bd9e93b3674673bbdbfb84db8a6dc09","src/unix/linux_like/android/b32/x86/mod.rs":"72cd0fb5a067170e7409359b6c0114f5472e313060b9642e2e48dc9fabfd4614","src/unix/linux_like/android/b64/aarch64/mod.rs":"3d240adefd7473f2b175b22c432cb4f6e39b4eb2158726b9ad5c12ec632fa7ad","src/unix/linux_like/android/b64/mod.rs":"e51d878bc81c97184ad0db70f6a63789c50b2250b58d66d72f9874e3ffd1bf98","src/unix/linux_like/android/b64/riscv64/mod.rs":"47c97eeb221c48bd08c2fc2ddf5f9f4d20c185df76681fe14e3a0950fb37ecbf","src/unix/linux_like/android/b64/x86_64/mod.rs":"4d6eb98fd17e821d0e05755ccb3f4f2b6e37bfbab533894ed444138b750e6b08","src/unix/linux_like/android/mod.rs":"c05d1af593584c9bc8ec62e59e252097cbc5d81aea7b81f9c165bb82c8ce2df8","src/unix/linux_like/emscripten/lfs64.rs":"486f987bc39653a48e6538ab0e8263cd2c1bd3d4732a2c573f89f7a037936c38","src/unix/linux_like/emscripten/mod.rs":"538dbcd492324f0254c1ed1f66ad8e7bc9e367cdd70a004cb0183b6fb368e64a","src/unix/linux_like/l4re/mod.rs":"47c07dc3c5e368ec9a64b33af9a314f51e5ed6c7fc6456bfba919d661a812275","src/unix/linux_like/l4re/uclibc/aarch64/mod.rs":"3111d03e5f43dfe1639fe7189903044cb980591c0580a62e8b511de4943201e2","src/unix/linux_like/l4re/uclibc/mod.rs":"3678301a89b80f638ea90b4ec2e3d225bb186eaba3d07f324969e46b81a1955a","src/unix/linux_like/l4re/uclibc/x86_64/mod.rs":"89bb7c67398c836c7f17727338c6032e7667307f02ef0f5d0121031fea1aa358","src/unix/linux_like/linux/arch/generic/mod.rs":"f531e877d712eb30cddf97c76273b7ba7fef19cf8eaafd60ca9ac26019b49adf","src/unix/linux_like/linux/arch/mips/mod.rs":"dcc1d2e85dd2087f61635c753d1781ec70dcba5c95aee285255f09216ea1e0f8","src/unix/linux_like/linux/arch/mod.rs":"8bc5898b03760a95dd4f124ac76ad92e5ae36b2d0644203d752ef2b37e487c3a","src/unix/linux_like/linux/arch/powerpc/mod.rs":"77b286fce4ac755ec840b9c70824a648314b3a5ed2a385d291138589647fdbaf","src/unix/linux_like/linux/arch/sparc/mod.rs":"46f3bd08ec01147af43c93a22c21956af038fa5f6e56643f8e39ca30721bf8cd","src/unix/linux_like/linux/gnu/b32/arm/mod.rs":"60d5c7667d81db0ad9faf65edc79420b2100cab27699e03de4d415de931e9f58","src/unix/linux_like/linux/gnu/b32/csky/mod.rs":"627e61997c33fc12fca9e337d248d8531ef0751f21f70110b65631a0e481b66d","src/unix/linux_like/linux/gnu/b32/m68k/mod.rs":"2ea8f649fc9f01829de439ffe0fdbf9566602ed6ec0088128167af1080c3a1b2","src/unix/linux_like/linux/gnu/b32/mips/mod.rs":"8b3254b47401cde6118f9eea7e98319af8174d99feac451949e673a28ed4ff6e","src/unix/linux_like/linux/gnu/b32/mod.rs":"5ff89d834a09550c9393965bfd2b74e0f9ab6059bc76f2a827faed631afe10a7","src/unix/linux_like/linux/gnu/b32/powerpc.rs":"585983c6617a590ee0ac5217280d03642efcf721bd80fdabd6b9477031574fee","src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs":"a5e6c931ca8da568626233f2aa5ee0dd0b8e4e1e8905d52ab9dd0ea618376c2f","src/unix/linux_like/linux/gnu/b32/sparc/mod.rs":"0ddd77054079d7f7ee7aede95552e6494f67fc3db332ec1f5f83a9d09e1a9710","src/unix/linux_like/linux/gnu/b32/x86/mod.rs":"e370a80bfdec000347c384f080b30c6f537dc51e17e715c2dd8a360e6a1407f3","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":"9134c7f8baef8abcb91b17d9a7b71ca937c4e4aee20aa4ce9896f8974a9e35f5","src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs":"242cd513eca13d14fbcc326369bb54006782260a558f0c2367102471d4081631","src/unix/linux_like/linux/gnu/b64/mips64/mod.rs":"007809bca7493eab4ac99a30b4495f73b544d7c882b81b5ca719c1b70761e0bf","src/unix/linux_like/linux/gnu/b64/mod.rs":"64d4182c10180692d381d8eea3d9ce8a6d47289b9c1218070241c5a445d9f1a0","src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs":"4dafacc390ff02ae3c34591a1605e1ac380c13338928a7e2e1ce748fc1e46323","src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs":"b183c78b477f685032078d55cfb293957cbb93316dce28393f9ea6579a87a988","src/unix/linux_like/linux/gnu/b64/s390x.rs":"741d95cf29b65a9fa5c7316b888f8c79f944376b308c7929eb21054b5a16a83d","src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs":"adc09bb20980ee2d5892a2f68949505bed2fa00954b837aa0a15eeb04edd53cb","src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs":"d72ae5556347be715e3fdfc084e7e95a184504f1575230f163ab7a72a405cb24","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":"21e9516e70d243bd21c224ad67994592a19775fde19671e15ee3562add8c0a9a","src/unix/linux_like/linux/mod.rs":"b2fe773686a4cb650785c85e9d175d22a286a8e3b64f8fe1fe25c7b11afffcdd","src/unix/linux_like/linux/musl/b32/arm/mod.rs":"7dc4b9a4d723d6868a84e81dbd5953b234c4540db3edd5a4a7ea0e154b101d91","src/unix/linux_like/linux/musl/b32/hexagon.rs":"2e58b6e8c072824d4d4f4f12fb96562d4a1d72d9f4e2af077e467a561b8ccf7b","src/unix/linux_like/linux/musl/b32/mips/mod.rs":"64f6b834d3d98db1c2d95d40371c644f71170d7710fcdd933f1ff51c3fbe2c70","src/unix/linux_like/linux/musl/b32/mod.rs":"6630c3ae8e27eb2bae6309bef4c96be9a21ebb877ce281b881a73589b7264a7a","src/unix/linux_like/linux/musl/b32/powerpc.rs":"a946612120ed9700ff1e4e729b0f8107a40f9ed7f5b320357552d5475441042d","src/unix/linux_like/linux/musl/b32/riscv32/mod.rs":"df3e3bbd2f69420b6de3a1d9aa242402f0bf26c77c573b2debea53af964f07d7","src/unix/linux_like/linux/musl/b32/x86/mod.rs":"83e340712e8acd89cefcb5eef0e826da79f47a7a42784699df90604c4e9a8712","src/unix/linux_like/linux/musl/b64/aarch64/mod.rs":"819387cdeb40bb2d4e7f23e7e8fee5d607792c637e6cab83e375a50f12f413e5","src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs":"9885dd43e46d3f34156b2871c3c08a88775efecb9eab0b4ed9bf396c1cb509d3","src/unix/linux_like/linux/musl/b64/mips64.rs":"24dd0c412ae02b84552a1803b4369dcc0fa3b989f9b6a406f404690c757fbc8b","src/unix/linux_like/linux/musl/b64/mod.rs":"1ce1eee49b1c7c5c02fe04b1539a0316becf0295763e3e18b1088895ed937373","src/unix/linux_like/linux/musl/b64/powerpc64.rs":"5f2a8d0a5b6a4d044c75ba433b4f69e27d475cbd5ba81e659e756757b5c36111","src/unix/linux_like/linux/musl/b64/riscv64/mod.rs":"d5298d224be38474d05c53ffda6384fdb24771774e5c19f84898c23e4603459c","src/unix/linux_like/linux/musl/b64/s390x.rs":"77079b262e2fda7b569c19236f264f460c157051bac349928306a07c4cb61195","src/unix/linux_like/linux/musl/b64/wasm32/mod.rs":"bd65c06c4e422cb859be803e0dc7404513c13e9d9c3c672f5462f0bbd3dc8ef2","src/unix/linux_like/linux/musl/b64/wasm32/wali.rs":"006149b7af0145dc40123fc7991d853c7f2c5c77bbc9c8a44c276be0d99a1343","src/unix/linux_like/linux/musl/b64/x86_64/mod.rs":"4535e44cfc85c66253c4cda347366d54c3ffa8e0b47b4b89cd87d96fb4005b1e","src/unix/linux_like/linux/musl/lfs64.rs":"61b1eae698d93dbd7c665e920ef685fd6eea0c4a2d96acc1d5f111d87b88ef38","src/unix/linux_like/linux/musl/mod.rs":"3f5a1901f98885e04ea5edb401a8ae7e4c719e57d70245d4664aa6fa43922dc2","src/unix/linux_like/linux/uclibc/arm/mod.rs":"9eb48a19e49cd2a989f6daae9552dd477d645bc2540a8bae5ac71894565375b0","src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs":"0b3c063ff6510c68577f8789ff87c1b630dc1c219611070fa91aa2b5b5ec595f","src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs":"3a3b90f896a07f5d17e3440bbff7b3153aed564732ef2e468167c7a425922ea8","src/unix/linux_like/linux/uclibc/mips/mod.rs":"e552f579a8dc9e690891113aa6360607ad962bd84cbb60c370b5c5f7c7d1d8c0","src/unix/linux_like/linux/uclibc/mod.rs":"413b7cc1cd88580162836dc8b1cf1fa569b3431248c13e030a1f50519ddaa875","src/unix/linux_like/linux/uclibc/x86_64/mod.rs":"53937263439095a4af0e5d583eb6cc621dd07a41aaa154b2f4cd1ec799dd7187","src/unix/linux_like/linux_l4re_shared.rs":"99327c91ab821b99539ab7f13d96b6836ddb8fbea36c0e811e02e3569ea6fcbc","src/unix/linux_like/mod.rs":"0fdaf2ab6fc6a46fbcfd6ccb98034ab5db7b1aad761c35ff7a95057795e54709","src/unix/mod.rs":"9949dcd446ad6a84b2c1bc15096afacb0acbac39eb1463af26ba4ef0290cdbb6","src/unix/newlib/aarch64/mod.rs":"d72d067a433bf24ee6b6255c4d04ea7c966518b8d064560c593f1ab23c025962","src/unix/newlib/arm/mod.rs":"95b6e4b3cd1eeb0386d4867e9e4c3438305aa3e8ae75697e06720aa06540a666","src/unix/newlib/espidf/mod.rs":"df07d6e19d1c9c91b3e31a1a9efbaa1668f88dfef693ec82a5b1a5b49c205b4b","src/unix/newlib/generic.rs":"c435a955d72878a71ea0719a75a4579818da6a2e01635f9fe1073d9a0d67352f","src/unix/newlib/horizon/mod.rs":"77ed6b127792e68ade4570e03783728ee619154aea6dcade5717f94b87c44a08","src/unix/newlib/mod.rs":"2a5770c038c6d7c1fdb8e3cf158c0ebbc25b89f324fa1247c27f75be6e2c7a57","src/unix/newlib/powerpc/mod.rs":"4d6dca09ea5dc000cbd39fb939a9b1a743d819931dfca3c896659e919a07a7da","src/unix/newlib/rtems/mod.rs":"7d06863f1942a90c9a6dd412637b93c18df00e7397cb1289176b9a2a19004b7c","src/unix/newlib/vita/mod.rs":"2f9bf66b40c2aa611033faf3ade5510dc9789af7302571fade40a1715398f06c","src/unix/nto/aarch64.rs":"73ad54ebca13454a75c7b0815e853175070a8ac2eefa338012a03e8b59f01e0c","src/unix/nto/mod.rs":"ddcb98afedf905c0af8819af1591a0c7df629a187ceb35108aeaa467c4879746","src/unix/nto/neutrino.rs":"bb9d24ccee3b9e53af6d028f04ecb646e216ac1a9e2b2ade54bc06135ce3ac59","src/unix/nto/x86_64.rs":"c2e46c6ab4c02c8f773298ec1e90eeccac43c09fa111ac9ae63408abc6eff584","src/unix/nuttx/mod.rs":"28909fb8e618c4967e4f810039a5e44948e74e53e6c3ef4cce21403ebb751b3d","src/unix/redox/mod.rs":"d9e5e3017fc0403bc97461b6caf6cf7e5d5dcfdab6550d44c3849acedcdfe87e","src/unix/solarish/compat.rs":"3d120a056208c03215cfbe3eef1584105160d133c0aa4557bb38018c177640b0","src/unix/solarish/illumos.rs":"74fa022e2799fed83ddeefecfdf559fff63e315ba36304845d65c9721b3ce3b7","src/unix/solarish/mod.rs":"03d1a75ecb758dde3c9ae3c3300c6d241e5e2481329724e32cfca6ffd5882cb3","src/unix/solarish/solaris.rs":"2be39ce5f464823359e7e2e4bae94c9acac9245042570df11a0ed75d49f8acad","src/unix/solarish/x86.rs":"44261c1f1b300dac9fa0dab93ec85d0c3b3c48b15bc4515b9820c9421cff7427","src/unix/solarish/x86_64.rs":"eec1602998dbd3b3aeb2d9a5bd66fc53a6fbbcd7967ed0bb2dd61a8c176023e4","src/unix/solarish/x86_common.rs":"4ae02d88622f7f080f5e8cd328f13187edbc5e124fb3e05e4cf212597f6cce48","src/vxworks/aarch64.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/arm.rs":"4d4236500f98858fc249f3b6858af5009851c8c582031926b8195b2646f7da5e","src/vxworks/mod.rs":"1f534c43c2e9f1d62ce11914c714a3a90efc0848fe4fef4db4e8aa80a207f6a4","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":"25bec8020d63045bcc9c071a81f442bbb7d8a29bd95f9f11db05259c89001425","src/wasi/p2.rs":"feecc0485eabd2c32bc5d800df6ad1b9b4d282741342fb08792f2635204e1e08","src/windows/gnu/mod.rs":"ddb71eada555defe1c2d29abe9dd9e61430c492e37c46ced9b173f2345bdaea7","src/windows/mod.rs":"4b9431edb7cb6e4db21050a61cf8196bb17f96f8c58d389b25c88f0ebf90fc1b","src/windows/msvc/mod.rs":"40410b26b606d1b59b0742b2632f3cd0a28a5429f784f9693fae0a78c15b3889","src/xous.rs":"1a83621c40248ad4d0c08e1fd4c1107d5efcbc2f4f0169538b7b4a885abedbfa","tests/const_fn.rs":"8ac3171d7bced3576a4e93f48570b3e00c553d7510ab85a7473ae3b716a812dc"},"package":"b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"}
\ 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 322f793..6ad3b76 100644
--- a/external/vendor/libc/.cargo_vcs_info.json
+++ b/external/vendor/libc/.cargo_vcs_info.json
@@ -1,6 +1,6 @@
{
"git": {
- "sha1": "9f598d245e18ecb243118cfde095f24598ec9d5b"
+ "sha1": "5660e6fc058d1c6c27788e3ea2bc7d3e79d3c22d"
},
"path_in_vcs": ""
}
\ No newline at end of file
diff --git a/external/vendor/libc/.rustfmt.toml b/external/vendor/libc/.rustfmt.toml
new file mode 100644
index 0000000..42e6cff
--- /dev/null
+++ b/external/vendor/libc/.rustfmt.toml
@@ -0,0 +1,6 @@
+edition = "2021"
+error_on_line_overflow = true
+group_imports = "StdExternalCrate"
+imports_granularity = "Module"
+# This crate gets large lists of reexports. Use vertical to reduce conflicts.
+imports_layout = "Vertical"
diff --git a/external/vendor/libc/CHANGELOG.md b/external/vendor/libc/CHANGELOG.md
index e9b726c..39117da 100644
--- a/external/vendor/libc/CHANGELOG.md
+++ b/external/vendor/libc/CHANGELOG.md
@@ -1,5 +1,223 @@
# Changelog
+## [0.2.183](https://github.com/rust-lang/libc/compare/0.2.182...0.2.183) - 2026-03-08
+
+### Added
+
+- ESP-IDF: Add `SOMAXCONN` ([#4993](https://github.com/rust-lang/libc/pull/4993))
+- Linux: Add `name_to_handle_at` and `open_by_handle_at` ([#4988](https://github.com/rust-lang/libc/pull/4988))
+- NetBSD: Add `kinfo_file`, `kinfo_pcb`, and related constants ([#4985](https://github.com/rust-lang/libc/pull/4985))
+- OpenBSD: Add `kinfo_file` and related constants ([#4991](https://github.com/rust-lang/libc/pull/4991))
+- VxWorks: Add additional structs and defines ([#5003](https://github.com/rust-lang/libc/pull/5003))
+- Various: Implement `Default` for `timeval` and `timespec` ([#4976](https://github.com/rust-lang/libc/pull/4976))
+
+### Fixed
+
+- Hexagon musl: Enable unstable 64-bit `time_t` support and `musl_v1_2_3` ([#4992](https://github.com/rust-lang/libc/pull/4992))
+- Nintendo Switch: Fix target support ([#4982](https://github.com/rust-lang/libc/pull/4982))
+- OpenBSD: Wrap an unused field in `Padding` ([#4997](https://github.com/rust-lang/libc/pull/4997))
+- Redox: Change `sigaction.sa_flags` to `c_int` ([#4986](https://github.com/rust-lang/libc/pull/4986))
+- Redox: Fix `blkcnt_t` type ([#4994](https://github.com/rust-lang/libc/pull/4994))
+
+## [0.2.182](https://github.com/rust-lang/libc/compare/0.2.181...0.2.182) - 2026-02-13
+
+### Added
+
+- Android, Linux: Add `tgkill` ([#4970](https://github.com/rust-lang/libc/pull/4970))
+- Redox: Add `RENAME_NOREPLACE` ([#4968](https://github.com/rust-lang/libc/pull/4968))
+- Redox: Add `renameat2` ([#4968](https://github.com/rust-lang/libc/pull/4968))
+
+
+## [0.2.181](https://github.com/rust-lang/libc/compare/0.2.180...0.2.181) - 2026-02-09
+
+### Added
+
+- Apple: Add `MADV_ZERO` ([#4924](https://github.com/rust-lang/libc/pull/4924))
+- Redox: Add `makedev`, `major`, and `minor` ([#4928](https://github.com/rust-lang/libc/pull/4928))
+- GLibc: Add `PTRACE_SET_SYSCALL_INFO` ([#4933](https://github.com/rust-lang/libc/pull/4933))
+- OpenBSD: Add more kqueue related constants for ([#4945](https://github.com/rust-lang/libc/pull/4945))
+- Linux: add CAN error types ([#4944](https://github.com/rust-lang/libc/pull/4944))
+- OpenBSD: Add siginfo_t::si_status ([#4946](https://github.com/rust-lang/libc/pull/4946))
+- QNX NTO: Add `max_align_t` ([#4927](https://github.com/rust-lang/libc/pull/4927))
+- Illumos: Add `_CS_PATH` ([#4956](https://github.com/rust-lang/libc/pull/4956))
+- OpenBSD: add `ppoll` ([#4957](https://github.com/rust-lang/libc/pull/4957))
+
+### Fixed
+
+- **breaking**: Redox: Fix the type of dev_t ([#4928](https://github.com/rust-lang/libc/pull/4928))
+- AIX: Change 'tv_nsec' of 'struct timespec' to type 'c_long' ([#4931](https://github.com/rust-lang/libc/pull/4931))
+- AIX: Use 'struct st_timespec' in 'struct stat{,64}' ([#4931](https://github.com/rust-lang/libc/pull/4931))
+- Glibc: Link old version of `tc{g,s}etattr` ([#4938](https://github.com/rust-lang/libc/pull/4938))
+- Glibc: Link the correct version of `cf{g,s}et{i,o}speed` on mips{32,64}r6 ([#4938](https://github.com/rust-lang/libc/pull/4938))
+- OpenBSD: Fix constness of tm.tm_zone ([#4948](https://github.com/rust-lang/libc/pull/4948))
+- OpenBSD: Fix the definition of `ptrace_thread_state` ([#4947](https://github.com/rust-lang/libc/pull/4947))
+- QuRT: Fix type visibility and defs ([#4932](https://github.com/rust-lang/libc/pull/4932))
+- Redox: Fix values for `PTHREAD_MUTEX_{NORMAL, RECURSIVE}` ([#4943](https://github.com/rust-lang/libc/pull/4943))
+- Various: Mark additional fields as private padding ([#4922](https://github.com/rust-lang/libc/pull/4922))
+
+### Changed
+
+- Fuchsia: Update `SO_*` constants ([#4937](https://github.com/rust-lang/libc/pull/4937))
+- Revert "musl: convert inline timespecs to timespec" (resolves build issues on targets only supported by Musl 1.2.3+ ) ([#4958](https://github.com/rust-lang/libc/pull/4958))
+
+
+## [0.2.180](https://github.com/rust-lang/libc/compare/0.2.179...0.2.180) - 2026-01-08
+
+### Added
+
+- QNX: Add missing BPF and ifreq structures ([#4769](https://github.com/rust-lang/libc/pull/4769))
+
+### Fixed
+
+- Linux, L4Re: address soundness issues of `CMSG_NXTHDR` ([#4903](https://github.com/rust-lang/libc/pull/4903))
+- Linux-like: Handle zero-sized payload differences in `CMSG_NXTHDR` ([#4903](https://github.com/rust-lang/libc/pull/4903))
+- Musl: Fix incorrect definitions of struct stat on some 32-bit architectures ([#4914](https://github.com/rust-lang/libc/pull/4914))
+- NetBSD: RISC-V 64: Correct `mcontext` type definitions ([#4886](https://github.com/rust-lang/libc/pull/4886))
+- uClibc: Re-enable `__SIZEOF_PTHREAD_COND_T` on non-L4Re uclibc ([#4915](https://github.com/rust-lang/libc/pull/4915))
+- uClibc: Restructure Linux `netlink` module to resolve build errors ([#4915](https://github.com/rust-lang/libc/pull/4915))
+
+
+## [0.2.179](https://github.com/rust-lang/libc/compare/0.2.178...0.2.179) - 2025-01-03
+
+With this release, we now have _unstable_ support for 64-bit `time_t` on 32-bit
+platforms with both Musl and Glibc. Testing is appreciated!
+
+For now, these can be enabled by setting environment variables during build:
+
+```text
+RUST_LIBC_UNSTABLE_MUSL_V1_2_3=1
+RUST_LIBC_UNSTABLE_GNU_TIME_BITS=64
+```
+
+Note that the exact configuration will change in the future. Setting the
+`MUSL_V1_2_3` variable also enables some newer API unrelated to `time_t`.
+
+### Added
+
+- L4Re: Add uclibc aarch64 support ([#4479](https://github.com/rust-lang/libc/pull/4479))
+- Linux, Android: Add a generic definition for `XCASE` ([#4847](https://github.com/rust-lang/libc/pull/4847))
+- Linux-like: Add `NAME_MAX` ([#4888](https://github.com/rust-lang/libc/pull/4888))
+- Linux: Add `AT_EXECVE_CHECK` ([#4422](https://github.com/rust-lang/libc/pull/4422))
+- Linux: Add the `SUN_LEN` macro ([#4269](https://github.com/rust-lang/libc/pull/4269))
+- Linux: add `getitimer` and `setitimer` ([#4890](https://github.com/rust-lang/libc/pull/4890))
+- Linux: add `pthread_tryjoin_n` and `pthread_timedjoin_np` ([#4887](https://github.com/rust-lang/libc/pull/4887))
+- Musl: Add unstable support for 64-bit `time_t` on 32-bit platforms ([#4463](https://github.com/rust-lang/libc/pull/4463))
+- NetBSD, OpenBSD: Add interface `LINK_STATE_*` definitions from `sys/net/if.h` ([#4751](https://github.com/rust-lang/libc/pull/4751))
+- QuRT: Add support for Qualcomm QuRT ([#4845](https://github.com/rust-lang/libc/pull/4845))
+- Types: Add Padding<T>::uninit() ([#4862](https://github.com/rust-lang/libc/pull/4862))
+
+### Fixed
+
+- Glibc: Link old version of `cf{g,s}et{i,o}speed` ([#4882](https://github.com/rust-lang/libc/pull/4882))
+- L4Re: Fixes for `pthread` ([#4479](https://github.com/rust-lang/libc/pull/4479))
+- L4re: Fix a wide variety of incorrect definitions ([#4479](https://github.com/rust-lang/libc/pull/4479))
+- Musl: Fix the value of `CPU_SETSIZE` on musl 1.2+ ([#4865](https://github.com/rust-lang/libc/pull/4865))
+- Musl: RISC-V: fix public padding fields in `stat/stat64` ([#4463](https://github.com/rust-lang/libc/pull/4463))
+- Musl: s390x: Fix definition of `SIGSTKSZ`/`MINSIGSTKSZ` ([#4884](https://github.com/rust-lang/libc/pull/4884))
+- NetBSD: Arm: Fix `PT_{GET,SET}FPREGS`, `_REG_TIPDR`, and `_REG_{LR,SP}` ([#4899](https://github.com/rust-lang/libc/pull/4899))
+- NetBSD: Fix `if_msghdr` alignment ([#4902](https://github.com/rust-lang/libc/pull/4902))
+- NetBSD: Fix `siginfo_t` layout on 32-bit platforms ([#4904](https://github.com/rust-lang/libc/pull/4904))
+- NetBSD: change definition of `pthread_spin_t` to allow arch redefinition. ([#4899](https://github.com/rust-lang/libc/pull/4899))
+- Newlib: Fix ambiguous glob exports and other warnings for Vita and 3DS ([#4875](https://github.com/rust-lang/libc/pull/4875))
+- QNX: Fix build error ([#4879](https://github.com/rust-lang/libc/pull/4879))
+
+### Changed
+
+- CI: Update CI images to FreeBSD 15.0-release ([#4857](https://github.com/rust-lang/libc/pull/4857))
+- L4Re: Make `pthread` struct fields private ([#4876](https://github.com/rust-lang/libc/pull/4876))
+- Linux, Fuchsia: Mark mq_attr padding area as such ([#4858](https://github.com/rust-lang/libc/pull/4858))
+- Types: Wrap a number of private fields in the `Padding` type ([#4862](https://github.com/rust-lang/libc/pull/4862))
+
+### Removed
+
+- Build: Remove `RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64` ([#4865](https://github.com/rust-lang/libc/pull/4865))
+- WASI: Remove nonexistent clocks ([#4880](https://github.com/rust-lang/libc/pull/4880))
+
+
+## [0.2.178](https://github.com/rust-lang/libc/compare/0.2.177...0.2.178) - 2025-12-01
+
+### Added
+
+- BSD: Add `issetugid` ([#4744](https://github.com/rust-lang/libc/pull/4744))
+- Cygwin: Add missing utmp/x.h, grp.h, and stdio.h interfaces ([#4827](https://github.com/rust-lang/libc/pull/4827))
+- Linux s390x musl: Add `__psw_t`/`fprefset_t`/`*context_t` ([#4726](https://github.com/rust-lang/libc/pull/4726))
+- Linux, Android: Add definition for IUCLC ([#4846](https://github.com/rust-lang/libc/pull/4846))
+- Linux, FreeBSD: Add `AT_HWCAP{3,4}` ([#4734](https://github.com/rust-lang/libc/pull/4734))
+- Linux: Add definitions from linux/can/bcm.h ([#4683](https://github.com/rust-lang/libc/pull/4683))
+- Linux: Add syscalls 451-469 for m68k ([#4850](https://github.com/rust-lang/libc/pull/4850))
+- Linux: PowerPC: Add 'ucontext.h' definitions ([#4696](https://github.com/rust-lang/libc/pull/4696))
+- NetBSD: Define `eventfd` ([#4830](https://github.com/rust-lang/libc/pull/4830))
+- Newlib: Add missing constants from `unistd.h` ([#4811](https://github.com/rust-lang/libc/pull/4811))
+- QNX NTO: Add `cfmakeraw` ([#4704](https://github.com/rust-lang/libc/pull/4704))
+- QNX NTO: Add `cfsetspeed` ([#4704](https://github.com/rust-lang/libc/pull/4704))
+- Redox: Add `getresgid` and `getresuid` ([#4752](https://github.com/rust-lang/libc/pull/4752))
+- Redox: Add `setresgid` and `setresuid` ([#4752](https://github.com/rust-lang/libc/pull/4752))
+- VxWorks: Add definitions from `select.h`, `stat.h`, `poll.h`, `ttycom.h`, `utsname.h`, `resource.h`, `mman.h`, `udp.h`, `in.h`, `in6.h`, `if.h`, `fnmatch.h`, and `sioLibCommon.h` ([#4781](https://github.com/rust-lang/libc/pull/4781))
+- VxWorks: Add missing defines/functions needed by rust stdlib ([#4779](https://github.com/rust-lang/libc/pull/4779))
+- WASI: Add more definitions for libstd ([#4747](https://github.com/rust-lang/libc/pull/4747))
+
+### Deprecated
+
+- Apple: Deprecate `TIOCREMOTE` ([#4764](https://github.com/rust-lang/libc/pull/4764))
+
+### Fixed
+
+Note that there were a large number of fixes on NetBSD for this `libc` release, some of which include minor breakage.
+
+- AIX: Change errno `EWOULDBLOCK` to make it an alias of `EAGAIN` ([#4790](https://github.com/rust-lang/libc/pull/4790))
+- AIX: Resolve function comparison and `unnecessary_transmutes` warnings ([#4780](https://github.com/rust-lang/libc/pull/4780))
+- Apple: Correct the value of `SF_SETTABLE` ([#4764](https://github.com/rust-lang/libc/pull/4764))
+- DragonflyBSD: Fix the type of `mcontext_t.mc_fpregs` ([#]())
+- EspIDF: Fix the duplicate definition of `gethostname` ([#4773](https://github.com/rust-lang/libc/pull/4773))
+- L4Re: Update available pthread API ([#4836](https://github.com/rust-lang/libc/pull/4836))
+- Linux: Correct the value of `NFT_MSG_MAX` ([#4761](https://github.com/rust-lang/libc/pull/4761))
+- Linux: Remove incorrect `repr(align(8))` for `canxl_frame` ([#4760](https://github.com/rust-lang/libc/pull/4760))
+- Make `eventfd` argument names match OS docs/headers ([#4830](https://github.com/rust-lang/libc/pull/4830))
+- NetBSD: Account for upstream changes to ptrace with LWP ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Correct `ipc_perm`, split from OpenBSD as `ipc.rs` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Correct a number of symbol link names ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Correct the type of `kinfo_vmentry.kve_path` ([#]())
+- NetBSD: Fix `uucred.cr_ngroups` from `int` to `short` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Fix the type of `kevent.udata` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Fix the type of `mcontext_t.__fpregs` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Fix the value of `PT_SUSPEND` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Fix the values of FNM_* constants ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Increase the size of `sockaddr_dl.sdl_data` from 12 to 24 ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `if_.rs`, fix the definition of `ifreq` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `time.rs`, fix the values of `CLOCK_*_CPUTIME_ID` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `timex.rs` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `types.rs`, correct the definition of `lwpid_t` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `utmp_.rs`, correct the definition of `lastlog` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Introduce `utmpx_.rs`, correct utmpx definitions ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Make `_cpuset` an extern type ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: RISC-V 64: Fix the `mcontext` types ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- Nuttx: Resolve warnings ([#4773](https://github.com/rust-lang/libc/pull/4773))
+- OHOS: Don't emit duplicate lfs64 definitions ([#4804](https://github.com/rust-lang/libc/pull/4804))
+- Redox: Fix the type of `pid_t` ([#4825](https://github.com/rust-lang/libc/pull/4825))
+- WASI: Gate `__wasilibc_register_preopened_fd` ([#4837](https://github.com/rust-lang/libc/pull/4837))
+- Wali: Fix unknown config ([#4773](https://github.com/rust-lang/libc/pull/4773))
+
+### Changed
+
+- AIX: Declare field 'tv_nsec' of structure 'timespec' as 'i32' in both 32-bit and 64-bit modes ([#4750](https://github.com/rust-lang/libc/pull/4750))
+- DragonFly: Avoid usage of `thread_local` ([#3653](https://github.com/rust-lang/libc/pull/3653))
+- Linux: Update the definition for `ucontext_t` and unskip its tests ([#4760](https://github.com/rust-lang/libc/pull/4760))
+- MinGW: Set `L_tmpnam` and `TMP_MAX` to the UCRT value ([#4566](https://github.com/rust-lang/libc/pull/4566))
+- WASI: More closely align pthread type reprs ([#4747](https://github.com/rust-lang/libc/pull/4747))
+- Simplify rustc-check-cfg emission in build.rs ([#4724](https://github.com/rust-lang/libc/pull/4724))
+- Transition a number of definitions to the new source structure (internal change)
+
+### Removed
+
+- MIPS Musl: Remove rogue definition of `SIGSTKFLT` ([#4749](https://github.com/rust-lang/libc/pull/4749))
+- NetBSD: Make `statvfs.f_spare` non-public ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Remove BPF constants ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Remove `*_MAXID` constants and `AT_SUN_LDPGSIZE` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Remove `IFF_NOTRAILERS` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Remove `vm_size_t` ([#4782](https://github.com/rust-lang/libc/pull/4782))
+- NetBSD: Replace REG_ENOSYS with REG_ILLSEQ ([#4782](https://github.com/rust-lang/libc/pull/4782))
+
+
## [0.2.177](https://github.com/rust-lang/libc/compare/0.2.176...0.2.177) - 2025-10-09
### Added
diff --git a/external/vendor/libc/CONTRIBUTING.md b/external/vendor/libc/CONTRIBUTING.md
index 0cdfaea..f43cda6 100644
--- a/external/vendor/libc/CONTRIBUTING.md
+++ b/external/vendor/libc/CONTRIBUTING.md
@@ -93,7 +93,7 @@ We have two automated tests running on
- `cd libc-test && cargo test`
- Use the `skip_*()` functions in `build.rs` if you really need a workaround.
2. Style checker
- - [`./ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh)
+ - [`./ci/style.py`](https://github.com/rust-lang/libc/blob/main/ci/style.py)
## Breaking change policy
diff --git a/external/vendor/libc/Cargo.lock b/external/vendor/libc/Cargo.lock
index 5b7b58c..e07feee 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.177"
+version = "0.2.183"
dependencies = [
"rustc-std-workspace-core",
]
diff --git a/external/vendor/libc/Cargo.toml b/external/vendor/libc/Cargo.toml
index d6c80a4..e006bc7 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.177"
+version = "0.2.183"
authors = ["The Rust Project Developers"]
build = "build.rs"
exclude = [
@@ -21,6 +21,7 @@ exclude = [
"/.github/*",
"/.cirrus.yml",
"/triagebot.toml",
+ "cherry-pick-stable.sh",
]
autolib = false
autobins = false
@@ -49,42 +50,89 @@ features = ["extra_traits"]
default-target = "x86_64-unknown-linux-gnu"
targets = [
"aarch64-apple-darwin",
- "aarch64-apple-ios",
- "aarch64-linux-android",
"aarch64-pc-windows-msvc",
- "aarch64-unknown-freebsd",
- "aarch64-unknown-fuchsia",
- "aarch64-unknown-hermit",
"aarch64-unknown-linux-gnu",
+ "i686-pc-windows-msvc",
+ "i686-unknown-linux-gnu",
+ "x86_64-pc-windows-gnu",
+ "x86_64-pc-windows-msvc",
+ "x86_64-unknown-linux-gnu",
+ "aarch64-pc-windows-gnullvm",
"aarch64-unknown-linux-musl",
- "aarch64-unknown-netbsd",
- "aarch64-unknown-openbsd",
- "aarch64-wrs-vxworks",
- "arm-linux-androideabi",
+ "aarch64-unknown-linux-ohos",
"arm-unknown-linux-gnueabi",
"arm-unknown-linux-gnueabihf",
+ "armv7-unknown-linux-gnueabihf",
+ "armv7-unknown-linux-ohos",
+ "i686-pc-windows-gnu",
+ "loongarch64-unknown-linux-gnu",
+ "loongarch64-unknown-linux-musl",
+ "powerpc-unknown-linux-gnu",
+ "powerpc64-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-musl",
+ "riscv64gc-unknown-linux-gnu",
+ "s390x-unknown-linux-gnu",
+ "sparcv9-sun-solaris",
+ "x86_64-apple-darwin",
+ "x86_64-pc-solaris",
+ "x86_64-pc-windows-gnullvm",
+ "x86_64-unknown-freebsd",
+ "x86_64-unknown-illumos",
+ "x86_64-unknown-linux-musl",
+ "x86_64-unknown-linux-ohos",
+ "x86_64-unknown-netbsd",
+ "aarch64-apple-ios",
+ "aarch64-apple-tvos",
+ "aarch64-apple-visionos",
+ "aarch64-apple-watchos",
+ "aarch64-linux-android",
+ "aarch64-unknown-fuchsia",
+ "arm-linux-androideabi",
"arm-unknown-linux-musleabi",
"arm-unknown-linux-musleabihf",
- "armebv7r-none-eabi",
- "armebv7r-none-eabihf",
+ "arm64ec-pc-windows-msvc",
"armv5te-unknown-linux-gnueabi",
"armv5te-unknown-linux-musleabi",
"armv7-linux-androideabi",
- "armv7-unknown-linux-gnueabihf",
"armv7-unknown-linux-musleabihf",
- "armv7-wrs-vxworks-eabihf",
- "armv7r-none-eabi",
- "armv7r-none-eabihf",
"i586-unknown-linux-gnu",
"i586-unknown-linux-musl",
"i686-linux-android",
- "i686-pc-windows-gnu",
- "i686-pc-windows-msvc",
- "i686-pc-windows-msvc",
"i686-unknown-freebsd",
- "i686-unknown-haiku",
- "i686-unknown-linux-gnu",
"i686-unknown-linux-musl",
+ "nvptx64-nvidia-cuda",
+ "riscv64gc-unknown-linux-musl",
+ "sparc64-unknown-linux-gnu",
+ "thumbv7neon-linux-androideabi",
+ "thumbv7neon-unknown-linux-gnueabihf",
+ "wasm32-unknown-emscripten",
+ "wasm32-unknown-unknown",
+ "wasm32-wasip1",
+ "wasm32-wasip2",
+ "x86_64-fortanix-unknown-sgx",
+ "x86_64-linux-android",
+ "x86_64-unknown-fuchsia",
+ "x86_64-unknown-linux-gnux32",
+ "x86_64-unknown-redox",
+ "aarch64-unknown-freebsd",
+ "aarch64-unknown-hermit",
+ "aarch64-unknown-illumos",
+ "aarch64-unknown-netbsd",
+ "aarch64-unknown-nto-qnx800",
+ "aarch64-unknown-openbsd",
+ "aarch64-unknown-redox",
+ "aarch64-wrs-vxworks",
+ "aarch64_be-unknown-linux-gnu",
+ "aarch64_be-unknown-linux-musl",
+ "armebv7r-none-eabi",
+ "armebv7r-none-eabihf",
+ "armv7-linux-androideabi",
+ "armv7-wrs-vxworks-eabihf",
+ "armv7r-none-eabi",
+ "armv7r-none-eabihf",
+ "hexagon-unknown-linux-musl",
+ "i686-unknown-haiku",
"i686-unknown-netbsd",
"i686-unknown-openbsd",
"i686-wrs-vxworks",
@@ -97,8 +145,6 @@ targets = [
"mipsel-sony-psp",
"mipsel-unknown-linux-gnu",
"mipsel-unknown-linux-musl",
- "nvptx64-nvidia-cuda",
- "powerpc-unknown-linux-gnu",
"powerpc-unknown-linux-gnuspe",
"powerpc-unknown-netbsd",
"powerpc-wrs-vxworks",
@@ -106,59 +152,42 @@ targets = [
"powerpc64-ibm-aix",
"powerpc64-unknown-freebsd",
"powerpc64-unknown-linux-gnu",
+ "powerpc64-unknown-linux-musl",
"powerpc64-wrs-vxworks",
- "powerpc64le-unknown-linux-gnu",
- "powerpc64le-unknown-linux-musl",
- "riscv32gc-unknown-linux-gnu",
+ "riscv32-wrs-vxworks",
+ "riscv32gc-unknown-linux-musl",
"riscv32i-unknown-none-elf",
"riscv32imac-unknown-none-elf",
"riscv32imc-unknown-none-elf",
- "riscv32-wrs-vxworks",
+ "riscv64-wrs-vxworks",
"riscv64gc-unknown-freebsd",
"riscv64gc-unknown-hermit",
- "riscv64gc-unknown-linux-gnu",
- "riscv64gc-unknown-linux-musl",
"riscv64gc-unknown-none-elf",
"riscv64imac-unknown-none-elf",
- "riscv64-wrs-vxworks",
- "s390x-unknown-linux-gnu",
"s390x-unknown-linux-musl",
"sparc-unknown-linux-gnu",
- "sparc64-unknown-linux-gnu",
"sparc64-unknown-netbsd",
- "sparcv9-sun-solaris",
"thumbv6m-none-eabi",
"thumbv7em-none-eabi",
"thumbv7em-none-eabihf",
"thumbv7m-none-eabi",
- "thumbv7neon-linux-androideabi",
- "thumbv7neon-unknown-linux-gnueabihf",
- "wasm32-unknown-emscripten",
- "wasm32-unknown-unknown",
- "x86_64-apple-darwin",
+ "wasm32-wasip3",
"x86_64-apple-ios",
- "x86_64-fortanix-unknown-sgx",
- "x86_64-linux-android",
- "x86_64-pc-solaris",
- "x86_64-pc-windows-gnu",
- "x86_64-pc-windows-msvc",
+ "x86_64-pc-cygwin",
"x86_64-unknown-dragonfly",
- "x86_64-unknown-freebsd",
- "x86_64-unknown-fuchsia",
"x86_64-unknown-haiku",
"x86_64-unknown-hermit",
- "x86_64-unknown-illumos",
+ "x86_64-unknown-hurd-gnu",
"x86_64-unknown-l4re-uclibc",
- "x86_64-unknown-linux-gnu",
- "x86_64-unknown-linux-gnux32",
- "x86_64-unknown-linux-musl",
- "x86_64-unknown-netbsd",
"x86_64-unknown-openbsd",
- "x86_64-unknown-redox",
"x86_64-wrs-vxworks",
]
cargo-args = ["-Zbuild-std=core"]
+[package.metadata.cargo-semver-checks.lints]
+repr_align_removed = "warn"
+global_value_marked_deprecated = "warn"
+
[features]
align = []
const-extern-fn = []
diff --git a/external/vendor/libc/Cargo.toml.orig b/external/vendor/libc/Cargo.toml.orig
index 74241d2..fe67351 100644
--- a/external/vendor/libc/Cargo.toml.orig
+++ b/external/vendor/libc/Cargo.toml.orig
@@ -1,9 +1,9 @@
[package]
name = "libc"
-version = "0.2.177"
+version = "0.2.183"
keywords = ["libc", "ffi", "bindings", "operating", "system"]
categories = ["external-ffi-bindings", "no-std", "os"]
-exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"]
+exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml", "cherry-pick-stable.sh"]
description = "Raw FFI bindings to platform libraries like libc."
authors = ["The Rust Project Developers"]
edition = "2021"
@@ -15,45 +15,100 @@ rust-version = "1.63"
features = ["extra_traits"]
default-target = "x86_64-unknown-linux-gnu"
targets = [
+ # Note: Keep this in sync with ci/verify-build.py
+ #
+ # Tier 1
"aarch64-apple-darwin",
- "aarch64-apple-ios",
- "aarch64-linux-android",
"aarch64-pc-windows-msvc",
- "aarch64-unknown-freebsd",
- "aarch64-unknown-fuchsia",
- "aarch64-unknown-hermit",
"aarch64-unknown-linux-gnu",
+ "i686-pc-windows-msvc",
+ "i686-unknown-linux-gnu",
+ "x86_64-pc-windows-gnu",
+ "x86_64-pc-windows-msvc",
+ "x86_64-unknown-linux-gnu",
+ #
+ # Tier 2 with host tools
+ "aarch64-pc-windows-gnullvm",
"aarch64-unknown-linux-musl",
- "aarch64-unknown-netbsd",
- "aarch64-unknown-openbsd",
- "aarch64-wrs-vxworks",
- "arm-linux-androideabi",
+ "aarch64-unknown-linux-ohos",
"arm-unknown-linux-gnueabi",
"arm-unknown-linux-gnueabihf",
+ "armv7-unknown-linux-gnueabihf",
+ "armv7-unknown-linux-ohos",
+ "i686-pc-windows-gnu",
+ "loongarch64-unknown-linux-gnu",
+ "loongarch64-unknown-linux-musl",
+ "powerpc-unknown-linux-gnu",
+ "powerpc64-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-gnu",
+ "powerpc64le-unknown-linux-musl",
+ "riscv64gc-unknown-linux-gnu",
+ "s390x-unknown-linux-gnu",
+ "sparcv9-sun-solaris",
+ "x86_64-apple-darwin",
+ "x86_64-pc-solaris",
+ "x86_64-pc-windows-gnullvm",
+ "x86_64-unknown-freebsd",
+ "x86_64-unknown-illumos",
+ "x86_64-unknown-linux-musl",
+ "x86_64-unknown-linux-ohos",
+ "x86_64-unknown-netbsd",
+ #
+ # Tier 2 without host tools
+ "aarch64-apple-ios",
+ "aarch64-apple-tvos",
+ "aarch64-apple-visionos",
+ "aarch64-apple-watchos",
+ "aarch64-linux-android",
+ "aarch64-unknown-fuchsia",
+ "arm-linux-androideabi",
"arm-unknown-linux-musleabi",
"arm-unknown-linux-musleabihf",
- "armebv7r-none-eabi",
- "armebv7r-none-eabihf",
+ "arm64ec-pc-windows-msvc",
"armv5te-unknown-linux-gnueabi",
"armv5te-unknown-linux-musleabi",
"armv7-linux-androideabi",
- "armv7-unknown-linux-gnueabihf",
"armv7-unknown-linux-musleabihf",
- "armv7-wrs-vxworks-eabihf",
- "armv7r-none-eabi",
- "armv7r-none-eabihf",
- # FIXME(hexagon): excluded due to duplicate symbol errors
- # "hexagon-unknown-linux-musl",
"i586-unknown-linux-gnu",
"i586-unknown-linux-musl",
"i686-linux-android",
- "i686-pc-windows-gnu",
- "i686-pc-windows-msvc",
- "i686-pc-windows-msvc",
"i686-unknown-freebsd",
- "i686-unknown-haiku",
- "i686-unknown-linux-gnu",
"i686-unknown-linux-musl",
+ "nvptx64-nvidia-cuda",
+ "riscv64gc-unknown-linux-musl",
+ "sparc64-unknown-linux-gnu",
+ "thumbv7neon-linux-androideabi",
+ "thumbv7neon-unknown-linux-gnueabihf",
+ "wasm32-unknown-emscripten",
+ "wasm32-unknown-unknown",
+ "wasm32-wasip1",
+ "wasm32-wasip2",
+ "x86_64-fortanix-unknown-sgx",
+ "x86_64-linux-android",
+ "x86_64-unknown-fuchsia",
+ "x86_64-unknown-linux-gnux32",
+ "x86_64-unknown-redox",
+ #
+ # Tier 3 targets that are distinct enough to be useful, or have historically
+ # been documented.
+ "aarch64-unknown-freebsd",
+ "aarch64-unknown-hermit",
+ "aarch64-unknown-illumos",
+ "aarch64-unknown-netbsd",
+ "aarch64-unknown-nto-qnx800",
+ "aarch64-unknown-openbsd",
+ "aarch64-unknown-redox",
+ "aarch64-wrs-vxworks",
+ "aarch64_be-unknown-linux-gnu",
+ "aarch64_be-unknown-linux-musl",
+ "armebv7r-none-eabi",
+ "armebv7r-none-eabihf",
+ "armv7-linux-androideabi",
+ "armv7-wrs-vxworks-eabihf",
+ "armv7r-none-eabi",
+ "armv7r-none-eabihf",
+ "hexagon-unknown-linux-musl",
+ "i686-unknown-haiku",
"i686-unknown-netbsd",
"i686-unknown-openbsd",
"i686-wrs-vxworks",
@@ -66,8 +121,6 @@ targets = [
"mipsel-sony-psp",
"mipsel-unknown-linux-gnu",
"mipsel-unknown-linux-musl",
- "nvptx64-nvidia-cuda",
- "powerpc-unknown-linux-gnu",
"powerpc-unknown-linux-gnuspe",
"powerpc-unknown-netbsd",
"powerpc-wrs-vxworks",
@@ -75,55 +128,34 @@ targets = [
"powerpc64-ibm-aix",
"powerpc64-unknown-freebsd",
"powerpc64-unknown-linux-gnu",
+ "powerpc64-unknown-linux-musl",
"powerpc64-wrs-vxworks",
- "powerpc64le-unknown-linux-gnu",
- "powerpc64le-unknown-linux-musl",
- "riscv32gc-unknown-linux-gnu",
+ "riscv32-wrs-vxworks",
+ "riscv32gc-unknown-linux-musl",
"riscv32i-unknown-none-elf",
"riscv32imac-unknown-none-elf",
"riscv32imc-unknown-none-elf",
- "riscv32-wrs-vxworks",
+ "riscv64-wrs-vxworks",
"riscv64gc-unknown-freebsd",
"riscv64gc-unknown-hermit",
- "riscv64gc-unknown-linux-gnu",
- "riscv64gc-unknown-linux-musl",
"riscv64gc-unknown-none-elf",
"riscv64imac-unknown-none-elf",
- "riscv64-wrs-vxworks",
- "s390x-unknown-linux-gnu",
"s390x-unknown-linux-musl",
"sparc-unknown-linux-gnu",
- "sparc64-unknown-linux-gnu",
"sparc64-unknown-netbsd",
- "sparcv9-sun-solaris",
"thumbv6m-none-eabi",
"thumbv7em-none-eabi",
"thumbv7em-none-eabihf",
"thumbv7m-none-eabi",
- "thumbv7neon-linux-androideabi",
- "thumbv7neon-unknown-linux-gnueabihf",
- "wasm32-unknown-emscripten",
- "wasm32-unknown-unknown",
- "x86_64-apple-darwin",
+ "wasm32-wasip3",
"x86_64-apple-ios",
- "x86_64-fortanix-unknown-sgx",
- "x86_64-linux-android",
- "x86_64-pc-solaris",
- "x86_64-pc-windows-gnu",
- "x86_64-pc-windows-msvc",
+ "x86_64-pc-cygwin",
"x86_64-unknown-dragonfly",
- "x86_64-unknown-freebsd",
- "x86_64-unknown-fuchsia",
"x86_64-unknown-haiku",
"x86_64-unknown-hermit",
- "x86_64-unknown-illumos",
+ "x86_64-unknown-hurd-gnu",
"x86_64-unknown-l4re-uclibc",
- "x86_64-unknown-linux-gnu",
- "x86_64-unknown-linux-gnux32",
- "x86_64-unknown-linux-musl",
- "x86_64-unknown-netbsd",
"x86_64-unknown-openbsd",
- "x86_64-unknown-redox",
"x86_64-wrs-vxworks"
]
cargo-args = ["-Zbuild-std=core"]
@@ -178,3 +210,9 @@ expl_impl_clone_on_copy = "allow"
uninlined_format_args = "allow"
unnecessary_cast = "allow" # some casts like `as usize` are only needed for some targets
used_underscore_binding = "allow"
+
+[package.metadata.cargo-semver-checks.lints]
+# Alignment is an internal detail that users must not rely upon
+repr_align_removed = "warn"
+# We deprecate things all the time
+global_value_marked_deprecated = "warn"
diff --git a/external/vendor/libc/LICENSE-MIT b/external/vendor/libc/LICENSE-MIT
index 7806181..f4095b2 100644
--- a/external/vendor/libc/LICENSE-MIT
+++ b/external/vendor/libc/LICENSE-MIT
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2020 The Rust Project Developers
+Copyright (c) The Rust Project Developers
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
diff --git a/external/vendor/libc/README.md b/external/vendor/libc/README.md
index c616d8b..607bf30 100644
--- a/external/vendor/libc/README.md
+++ b/external/vendor/libc/README.md
@@ -71,7 +71,7 @@ but this is not guaranteed.
You can see the platform(target)-specific docs on [docs.rs], select a platform
you want to see.
-See [`ci/verify-build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.sh) for
+See [`ci/verify-build.py`](https://github.com/rust-lang/libc/blob/HEAD/ci/verify-build.py) for
the platforms on which `libc` is guaranteed to build for each Rust toolchain.
The test-matrix at [GitHub Actions] and [Cirrus CI] show the platforms in which
`libc` tests are run.
diff --git a/external/vendor/libc/build.rs b/external/vendor/libc/build.rs
index 802ea7a..5eb2de3 100644
--- a/external/vendor/libc/build.rs
+++ b/external/vendor/libc/build.rs
@@ -1,5 +1,12 @@
-use std::process::{Command, Output};
-use std::{env, str};
+use std::env::VarError;
+use std::process::{
+ Command,
+ Output,
+};
+use std::{
+ env,
+ str,
+};
// List of cfgs this build script is allowed to set. The list is needed to support check-cfg, as we
// need to know all the possible cfgs that this script will set. If you need to set another cfg
@@ -18,10 +25,12 @@ const ALLOWED_CFGS: &[&str] = &[
// Corresponds to `_TIME_BITS=64` in glibc
"gnu_time_bits64",
"libc_deny_warnings",
- "libc_thread_local",
// Corresponds to `__USE_TIME_BITS64` in UAPI
"linux_time_bits64",
"musl_v1_2_3",
+ // Corresponds to `_REDIR_TIME64` in musl
+ "musl32_time64",
+ "vxworks_lt_25_09",
];
// Extra values to allow for check-cfg.
@@ -29,7 +38,7 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[
(
"target_os",
&[
- "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin",
+ "switch", "aix", "ohos", "hurd", "rtems", "visionos", "nuttx", "cygwin", "qurt",
],
),
(
@@ -42,13 +51,15 @@ const CHECK_CFG_EXTRA: &[(&str, &[&str])] = &[
),
];
+/// Musl architectures that set `#define _REDIR_TIME64 1`.
+const MUSL_REDIR_TIME64_ARCHES: &[&str] = &["arm", "hexagon", "mips", "powerpc", "x86"];
+
fn main() {
// Avoid unnecessary re-building.
println!("cargo:rerun-if-changed=build.rs");
let (rustc_minor_ver, _is_nightly) = rustc_minor_nightly();
- let rustc_dep_of_std = env::var("CARGO_FEATURE_RUSTC_DEP_OF_STD").is_ok();
- let libc_ci = env::var("LIBC_CI").is_ok();
+ let libc_ci = env_flag("LIBC_CI");
let target_env = env::var("CARGO_CFG_TARGET_ENV").unwrap_or_default();
let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
let target_ptr_width = env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap_or_default();
@@ -87,13 +98,31 @@ fn main() {
_ => (),
}
- let musl_v1_2_3 = env::var("RUST_LIBC_UNSTABLE_MUSL_V1_2_3").is_ok();
+ match vxworks_version_code() {
+ Some(v) if (v < (25, 9)) => set_cfg("vxworks_lt_25_09"),
+ // VxWorks version >= 25.09
+ _ => (),
+ }
+
+ let mut musl_v1_2_3 = env_flag("RUST_LIBC_UNSTABLE_MUSL_V1_2_3");
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_arch == "loongarch64" || target_env == "ohos" {
- // FIXME(musl): enable time64 api as well
+
+ // OpenHarmony uses a fork of the musl libc
+ let musl = target_env == "musl" || target_env == "ohos";
+
+ // loongarch64, hexagon, and ohos only exist with recent musl
+ if target_arch == "loongarch64" || target_arch == "hexagon" || target_env == "ohos" {
+ musl_v1_2_3 = true;
+ }
+
+ if musl && musl_v1_2_3 {
set_cfg("musl_v1_2_3");
+ if MUSL_REDIR_TIME64_ARCHES.contains(&target_arch.as_str()) {
+ set_cfg("musl32_time64");
+ set_cfg("linux_time_bits64");
+ }
}
+
let linux_time_bits64 = env::var("RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64").is_ok();
println!("cargo:rerun-if-env-changed=RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64");
if linux_time_bits64 {
@@ -143,28 +172,15 @@ fn main() {
set_cfg("libc_deny_warnings");
}
- // #[thread_local] is currently unstable
- if rustc_dep_of_std {
- set_cfg("libc_thread_local");
- }
-
// Since Rust 1.80, configuration that isn't recognized by default needs to be provided to
// avoid warnings.
if rustc_minor_ver >= 80 {
for cfg in ALLOWED_CFGS {
- if rustc_minor_ver >= 75 {
- println!("cargo:rustc-check-cfg=cfg({cfg})");
- } else {
- println!("cargo:rustc-check-cfg=values({cfg})");
- }
+ println!("cargo:rustc-check-cfg=cfg({cfg})");
}
for &(name, values) in CHECK_CFG_EXTRA {
let values = values.join("\",\"");
- if rustc_minor_ver >= 75 {
- println!("cargo:rustc-check-cfg=cfg({name},values(\"{values}\"))");
- } else {
- println!("cargo:rustc-check-cfg=values({name},\"{values}\")");
- }
+ println!("cargo:rustc-check-cfg=cfg({name},values(\"{values}\"))");
}
}
}
@@ -289,6 +305,20 @@ fn emcc_version_code() -> Option<u64> {
Some(major * 10000 + minor * 100 + patch)
}
+/// Retrieve the VxWorks release version from the environment variable set by the VxWorks build
+/// environment, in `(minor, patch)` form. Currently the only major version supported by Rust
+/// is 7.
+fn vxworks_version_code() -> Option<(u32, u32)> {
+ let version = env::var("WIND_RELEASE_ID").ok()?;
+
+ let mut pieces = version.trim().split(['.']);
+
+ let major: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
+ let minor: u32 = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
+
+ Some((major, minor))
+}
+
fn set_cfg(cfg: &str) {
assert!(
ALLOWED_CFGS.contains(&cfg),
@@ -296,3 +326,13 @@ fn set_cfg(cfg: &str) {
);
println!("cargo:rustc-cfg={cfg}");
}
+
+/// Return true if the env is set to a value other than `0`.
+fn env_flag(key: &str) -> bool {
+ match env::var(key) {
+ Ok(x) if x == "0" => false,
+ Err(VarError::NotPresent) => false,
+ Err(VarError::NotUnicode(_)) => panic!("non-unicode var for `{key}`"),
+ Ok(_) => true,
+ }
+}
diff --git a/external/vendor/libc/cherry-pick-stable.sh b/external/vendor/libc/cherry-pick-stable.sh
deleted file mode 100755
index c338be4..0000000
--- a/external/vendor/libc/cherry-pick-stable.sh
+++ /dev/null
@@ -1,150 +0,0 @@
-#!/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/rustfmt.toml b/external/vendor/libc/rustfmt.toml
deleted file mode 100644
index de0fc5e..0000000
--- a/external/vendor/libc/rustfmt.toml
+++ /dev/null
@@ -1,4 +0,0 @@
-edition = "2021"
-error_on_line_overflow = true
-group_imports = "StdExternalCrate"
-imports_granularity = "Module"
diff --git a/external/vendor/libc/src/fuchsia/aarch64.rs b/external/vendor/libc/src/fuchsia/aarch64.rs
index 577f0d9..93090f7 100644
--- a/external/vendor/libc/src/fuchsia/aarch64.rs
+++ b/external/vendor/libc/src/fuchsia/aarch64.rs
@@ -15,10 +15,10 @@ s! {
pub st_uid: crate::uid_t,
pub st_gid: crate::gid_t,
pub st_rdev: crate::dev_t,
- __pad0: c_ulong,
+ __pad0: Padding<c_ulong>,
pub st_size: off_t,
pub st_blksize: crate::blksize_t,
- __pad1: c_int,
+ __pad1: Padding<c_int>,
pub st_blocks: crate::blkcnt_t,
pub st_atime: crate::time_t,
pub st_atime_nsec: c_long,
@@ -26,7 +26,7 @@ s! {
pub st_mtime_nsec: c_long,
pub st_ctime: crate::time_t,
pub st_ctime_nsec: c_long,
- __unused: [c_uint; 2],
+ __unused: Padding<[c_uint; 2]>,
}
pub struct stat64 {
@@ -37,10 +37,10 @@ s! {
pub st_uid: crate::uid_t,
pub st_gid: crate::gid_t,
pub st_rdev: crate::dev_t,
- __pad0: c_ulong,
+ __pad0: Padding<c_ulong>,
pub st_size: off_t,
pub st_blksize: crate::blksize_t,
- __pad1: c_int,
+ __pad1: Padding<c_int>,
pub st_blocks: crate::blkcnt_t,
pub st_atime: crate::time_t,
pub st_atime_nsec: c_long,
@@ -48,7 +48,7 @@ s! {
pub st_mtime_nsec: c_long,
pub st_ctime: crate::time_t,
pub st_ctime_nsec: c_long,
- __unused: [c_uint; 2],
+ __unused: Padding<[c_uint; 2]>,
}
pub struct ipc_perm {
@@ -59,8 +59,8 @@ s! {
pub cgid: crate::gid_t,
pub mode: crate::mode_t,
pub __seq: c_ushort,
- __unused1: c_ulong,
- __unused2: c_ulong,
+ __unused1: Padding<c_ulong>,
+ __unused2: Padding<c_ulong>,
}
}
diff --git a/external/vendor/libc/src/fuchsia/mod.rs b/external/vendor/libc/src/fuchsia/mod.rs
index 31f13b1..3e35faa 100644
--- a/external/vendor/libc/src/fuchsia/mod.rs
+++ b/external/vendor/libc/src/fuchsia/mod.rs
@@ -78,32 +78,10 @@ pub type fsblkcnt_t = c_ulonglong;
pub type fsfilcnt_t = c_ulonglong;
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).
-#[derive(Debug)]
-pub enum timezone {}
-impl Copy for timezone {}
-impl Clone for timezone {
- fn clone(&self) -> timezone {
- *self
- }
-}
-#[derive(Debug)]
-pub enum DIR {}
-impl Copy for DIR {}
-impl Clone for DIR {
- fn clone(&self) -> DIR {
- *self
- }
-}
-
-#[derive(Debug)]
-pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct
-impl Copy for fpos64_t {}
-impl Clone for fpos64_t {
- fn clone(&self) -> fpos64_t {
- *self
- }
+extern_ty! {
+ pub enum timezone {}
+ pub enum DIR {}
+ pub enum fpos64_t {} // FIXME(fuchsia): fill this out with a struct
}
// PUB_STRUCT
@@ -121,11 +99,13 @@ s! {
pub modtime: time_t,
}
+ #[derive(Default)]
pub struct timeval {
pub tv_sec: time_t,
pub tv_usec: suseconds_t,
}
+ #[derive(Default)]
pub struct timespec {
pub tv_sec: time_t,
pub tv_nsec: c_long,
@@ -143,46 +123,46 @@ s! {
pub ru_stime: timeval,
pub ru_maxrss: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad1: u32,
+ __pad1: Padding<u32>,
pub ru_ixrss: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad2: u32,
+ __pad2: Padding<u32>,
pub ru_idrss: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad3: u32,
+ __pad3: Padding<u32>,
pub ru_isrss: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad4: u32,
+ __pad4: Padding<u32>,
pub ru_minflt: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad5: u32,
+ __pad5: Padding<u32>,
pub ru_majflt: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad6: u32,
+ __pad6: Padding<u32>,
pub ru_nswap: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad7: u32,
+ __pad7: Padding<u32>,
pub ru_inblock: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad8: u32,
+ __pad8: Padding<u32>,
pub ru_oublock: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad9: u32,
+ __pad9: Padding<u32>,
pub ru_msgsnd: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad10: u32,
+ __pad10: Padding<u32>,
pub ru_msgrcv: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad11: u32,
+ __pad11: Padding<u32>,
pub ru_nsignals: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad12: u32,
+ __pad12: Padding<u32>,
pub ru_nvcsw: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad13: u32,
+ __pad13: Padding<u32>,
pub ru_nivcsw: c_long,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- __pad14: u32,
+ __pad14: Padding<u32>,
}
pub struct in_addr {
@@ -348,7 +328,7 @@ s! {
pub struct sockaddr_vm {
pub svm_family: sa_family_t,
- pub svm_reserved1: c_ushort,
+ svm_reserved1: Padding<c_ushort>,
pub svm_port: crate::in_port_t,
pub svm_cid: c_uint,
pub svm_zero: [u8; 4],
@@ -454,11 +434,11 @@ s! {
pub gl_offs: size_t,
pub gl_flags: c_int,
- __unused1: *mut c_void,
- __unused2: *mut c_void,
- __unused3: *mut c_void,
- __unused4: *mut c_void,
- __unused5: *mut c_void,
+ __unused1: Padding<*mut c_void>,
+ __unused2: Padding<*mut c_void>,
+ __unused3: Padding<*mut c_void>,
+ __unused4: Padding<*mut c_void>,
+ __unused5: Padding<*mut c_void>,
}
pub struct ifaddrs {
@@ -505,7 +485,7 @@ s! {
#[cfg(target_endian = "little")]
pub f_fsid: c_ulong,
#[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))]
- __f_unused: c_int,
+ __f_unused: Padding<c_int>,
#[cfg(target_endian = "big")]
pub f_fsid: c_ulong,
pub f_flag: c_ulong,
@@ -543,11 +523,11 @@ s! {
pub ssi_stime: u64,
pub ssi_addr: u64,
pub ssi_addr_lsb: u16,
- _pad2: u16,
+ _pad2: Padding<u16>,
pub ssi_syscall: i32,
pub ssi_call_addr: u64,
pub ssi_arch: u32,
- _pad: [u8; 28],
+ _pad: Padding<[u8; 28]>,
}
pub struct itimerspec {
@@ -800,8 +780,8 @@ s! {
pub shm_cpid: crate::pid_t,
pub shm_lpid: crate::pid_t,
pub shm_nattch: c_ulong,
- __pad1: c_ulong,
- __pad2: c_ulong,
+ __pad1: Padding<c_ulong>,
+ __pad2: Padding<c_ulong>,
}
pub struct msqid_ds {
@@ -814,8 +794,8 @@ s! {
pub msg_qbytes: crate::msglen_t,
pub msg_lspid: crate::pid_t,
pub msg_lrpid: crate::pid_t,
- __pad1: c_ulong,
- __pad2: c_ulong,
+ __pad1: Padding<c_ulong>,
+ __pad2: Padding<c_ulong>,
}
pub struct statfs {
@@ -838,10 +818,10 @@ s! {
pub msg_namelen: crate::socklen_t,
pub msg_iov: *mut crate::iovec,
pub msg_iovlen: c_int,
- __pad1: c_int,
+ __pad1: Padding<c_int>,
pub msg_control: *mut c_void,
pub msg_controllen: crate::socklen_t,
- __pad2: crate::socklen_t,
+ __pad2: Padding<crate::socklen_t>,
pub msg_flags: c_int,
}
@@ -902,9 +882,7 @@ s! {
pub struct pthread_condattr_t {
size: [u8; crate::__SIZEOF_PTHREAD_CONDATTR_T],
}
-}
-s_no_extra_traits! {
pub struct sysinfo {
pub uptime: c_ulong,
pub loads: [c_ulong; 3],
@@ -919,7 +897,7 @@ s_no_extra_traits! {
pub totalhigh: c_ulong,
pub freehigh: c_ulong,
pub mem_unit: c_uint,
- pub __reserved: [c_char; 256],
+ __reserved: Padding<[c_char; 256]>,
}
pub struct sockaddr_un {
@@ -929,7 +907,7 @@ s_no_extra_traits! {
pub struct sockaddr_storage {
pub ss_family: sa_family_t,
- __ss_pad2: [u8; 128 - 2 - 8],
+ __ss_pad2: Padding<[u8; 128 - 2 - 8]>,
__ss_align: size_t,
}
@@ -970,7 +948,7 @@ s_no_extra_traits! {
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
pub mq_curmsgs: i64,
#[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- pad: [i64; 4],
+ pad: Padding<[i64; 4]>,
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
pub mq_flags: c_long,
@@ -981,16 +959,18 @@ s_no_extra_traits! {
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
pub mq_curmsgs: c_long,
#[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
- pad: [c_long; 4],
+ pad: Padding<[c_long; 4]>,
}
pub struct sockaddr_nl {
pub nl_family: crate::sa_family_t,
- nl_pad: c_ushort,
+ nl_pad: Padding<c_ushort>,
pub nl_pid: u32,
pub nl_groups: u32,
}
+ // FIXME(msrv): suggested method was added in 1.85
+ #[allow(unpredictable_function_pointer_comparisons)]
pub struct sigevent {
pub sigev_value: crate::sigval,
pub sigev_signo: c_int,
@@ -1045,269 +1025,6 @@ s_no_extra_traits! {
}
}
-cfg_if! {
- if #[cfg(feature = "extra_traits")] {
- impl PartialEq for sysinfo {
- fn eq(&self, other: &sysinfo) -> bool {
- self.uptime == other.uptime
- && self.loads == other.loads
- && self.totalram == other.totalram
- && self.freeram == other.freeram
- && self.sharedram == other.sharedram
- && self.bufferram == other.bufferram
- && self.totalswap == other.totalswap
- && self.freeswap == other.freeswap
- && self.procs == other.procs
- && self.pad == other.pad
- && self.totalhigh == other.totalhigh
- && self.freehigh == other.freehigh
- && self.mem_unit == other.mem_unit
- && self
- .__reserved
- .iter()
- .zip(other.__reserved.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for sysinfo {}
- impl hash::Hash for sysinfo {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.uptime.hash(state);
- self.loads.hash(state);
- self.totalram.hash(state);
- self.freeram.hash(state);
- self.sharedram.hash(state);
- self.bufferram.hash(state);
- self.totalswap.hash(state);
- self.freeswap.hash(state);
- self.procs.hash(state);
- self.pad.hash(state);
- self.totalhigh.hash(state);
- self.freehigh.hash(state);
- self.mem_unit.hash(state);
- self.__reserved.hash(state);
- }
- }
-
- impl PartialEq for sockaddr_un {
- fn eq(&self, other: &sockaddr_un) -> bool {
- self.sun_family == other.sun_family
- && self
- .sun_path
- .iter()
- .zip(other.sun_path.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for sockaddr_un {}
- impl hash::Hash for sockaddr_un {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.sun_family.hash(state);
- self.sun_path.hash(state);
- }
- }
-
- impl PartialEq for sockaddr_storage {
- fn eq(&self, other: &sockaddr_storage) -> bool {
- self.ss_family == other.ss_family
- && self.__ss_align == other.__ss_align
- && self
- .__ss_pad2
- .iter()
- .zip(other.__ss_pad2.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for sockaddr_storage {}
- impl hash::Hash for sockaddr_storage {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.ss_family.hash(state);
- self.__ss_align.hash(state);
- self.__ss_pad2.hash(state);
- }
- }
-
- impl PartialEq for utsname {
- fn eq(&self, other: &utsname) -> bool {
- self.sysname
- .iter()
- .zip(other.sysname.iter())
- .all(|(a, b)| a == b)
- && self
- .nodename
- .iter()
- .zip(other.nodename.iter())
- .all(|(a, b)| a == b)
- && self
- .release
- .iter()
- .zip(other.release.iter())
- .all(|(a, b)| a == b)
- && self
- .version
- .iter()
- .zip(other.version.iter())
- .all(|(a, b)| a == b)
- && self
- .machine
- .iter()
- .zip(other.machine.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for utsname {}
- impl hash::Hash for utsname {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.sysname.hash(state);
- self.nodename.hash(state);
- self.release.hash(state);
- self.version.hash(state);
- self.machine.hash(state);
- }
- }
-
- impl PartialEq for dirent {
- fn eq(&self, other: &dirent) -> bool {
- self.d_ino == other.d_ino
- && self.d_off == other.d_off
- && self.d_reclen == other.d_reclen
- && self.d_type == other.d_type
- && self
- .d_name
- .iter()
- .zip(other.d_name.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for dirent {}
- impl hash::Hash for dirent {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.d_ino.hash(state);
- self.d_off.hash(state);
- self.d_reclen.hash(state);
- self.d_type.hash(state);
- self.d_name.hash(state);
- }
- }
-
- impl PartialEq for dirent64 {
- fn eq(&self, other: &dirent64) -> bool {
- self.d_ino == other.d_ino
- && self.d_off == other.d_off
- && self.d_reclen == other.d_reclen
- && self.d_type == other.d_type
- && self
- .d_name
- .iter()
- .zip(other.d_name.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for dirent64 {}
- impl hash::Hash for dirent64 {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.d_ino.hash(state);
- self.d_off.hash(state);
- self.d_reclen.hash(state);
- self.d_type.hash(state);
- self.d_name.hash(state);
- }
- }
-
- impl PartialEq for mq_attr {
- fn eq(&self, other: &mq_attr) -> bool {
- self.mq_flags == other.mq_flags
- && self.mq_maxmsg == other.mq_maxmsg
- && self.mq_msgsize == other.mq_msgsize
- && self.mq_curmsgs == other.mq_curmsgs
- }
- }
- impl Eq for mq_attr {}
- impl hash::Hash for mq_attr {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.mq_flags.hash(state);
- self.mq_maxmsg.hash(state);
- self.mq_msgsize.hash(state);
- self.mq_curmsgs.hash(state);
- }
- }
-
- impl PartialEq for sockaddr_nl {
- fn eq(&self, other: &sockaddr_nl) -> bool {
- self.nl_family == other.nl_family
- && self.nl_pid == other.nl_pid
- && self.nl_groups == other.nl_groups
- }
- }
- impl Eq for sockaddr_nl {}
- impl hash::Hash for sockaddr_nl {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.nl_family.hash(state);
- self.nl_pid.hash(state);
- self.nl_groups.hash(state);
- }
- }
-
- // FIXME(msrv): suggested method was added in 1.85
- #[allow(unpredictable_function_pointer_comparisons)]
- impl PartialEq for sigevent {
- fn eq(&self, other: &sigevent) -> bool {
- self.sigev_value == other.sigev_value
- && self.sigev_signo == other.sigev_signo
- && self.sigev_notify == other.sigev_notify
- && self.sigev_notify_function == other.sigev_notify_function
- && self.sigev_notify_attributes == other.sigev_notify_attributes
- }
- }
- impl Eq for sigevent {}
- impl hash::Hash for sigevent {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.sigev_value.hash(state);
- self.sigev_signo.hash(state);
- self.sigev_notify.hash(state);
- self.sigev_notify_function.hash(state);
- self.sigev_notify_attributes.hash(state);
- }
- }
-
- impl PartialEq for pthread_cond_t {
- fn eq(&self, other: &pthread_cond_t) -> bool {
- self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b)
- }
- }
- impl Eq for pthread_cond_t {}
- impl hash::Hash for pthread_cond_t {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.size.hash(state);
- }
- }
-
- impl PartialEq for pthread_mutex_t {
- fn eq(&self, other: &pthread_mutex_t) -> bool {
- self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b)
- }
- }
- impl Eq for pthread_mutex_t {}
- impl hash::Hash for pthread_mutex_t {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.size.hash(state);
- }
- }
-
- impl PartialEq for pthread_rwlock_t {
- fn eq(&self, other: &pthread_rwlock_t) -> bool {
- self.size.iter().zip(other.size.iter()).all(|(a, b)| a == b)
- }
- }
- impl Eq for pthread_rwlock_t {}
- impl hash::Hash for pthread_rwlock_t {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.size.hash(state);
- }
- }
- }
-}
-
// PUB_CONST
pub const INT_MIN: c_int = -2147483648;
@@ -1490,9 +1207,6 @@ pub const F_OK: c_int = 0;
pub const R_OK: c_int = 4;
pub const W_OK: c_int = 2;
pub const X_OK: c_int = 1;
-pub const STDIN_FILENO: c_int = 0;
-pub const STDOUT_FILENO: c_int = 1;
-pub const STDERR_FILENO: c_int = 2;
pub const SIGHUP: c_int = 1;
pub const SIGINT: c_int = 2;
pub const SIGQUIT: c_int = 3;
@@ -2972,14 +2686,6 @@ pub const B3000000: crate::speed_t = 0o010015;
pub const B3500000: crate::speed_t = 0o010016;
pub const B4000000: crate::speed_t = 0o010017;
-pub const SO_BINDTODEVICE: c_int = 25;
-pub const SO_TIMESTAMP: c_int = 29;
-pub const SO_MARK: c_int = 36;
-pub const SO_RXQ_OVFL: c_int = 40;
-pub const SO_PEEK_OFF: c_int = 42;
-pub const SO_BUSY_POLL: c_int = 46;
-pub const SO_BINDTOIFINDEX: c_int = 62;
-
pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 56;
pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 40;
@@ -3128,11 +2834,21 @@ pub const SO_RCVLOWAT: c_int = 18;
pub const SO_SNDLOWAT: c_int = 19;
pub const SO_RCVTIMEO: c_int = 20;
pub const SO_SNDTIMEO: c_int = 21;
+pub const SO_BINDTODEVICE: c_int = 25;
+pub const SO_TIMESTAMP: c_int = 29;
pub const SO_ACCEPTCONN: c_int = 30;
pub const SO_SNDBUFFORCE: c_int = 32;
pub const SO_RCVBUFFORCE: c_int = 33;
+pub const SO_TIMESTAMPNS: c_int = 35;
+pub const SO_MARK: c_int = 36;
pub const SO_PROTOCOL: c_int = 38;
pub const SO_DOMAIN: c_int = 39;
+pub const SO_RXQ_OVFL: c_int = 40;
+pub const SO_PEEK_OFF: c_int = 42;
+pub const SO_BUSY_POLL: c_int = 46;
+pub const SO_COOKIE: c_int = 57;
+pub const SO_BINDTOIFINDEX: c_int = 62;
+pub const SO_FUCHSIA_MARK: c_int = 10000;
pub const SA_ONSTACK: c_int = 0x08000000;
pub const SA_SIGINFO: c_int = 0x00000004;
@@ -3421,21 +3137,9 @@ fn __MHDR_END(mhdr: *const msghdr) -> *mut c_uchar {
#[link(name = "fdio")]
extern "C" {}
-#[derive(Debug)]
-pub enum FILE {}
-impl Copy for FILE {}
-impl Clone for FILE {
- fn clone(&self) -> FILE {
- *self
- }
-}
-#[derive(Debug)]
-pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct
-impl Copy for fpos_t {}
-impl Clone for fpos_t {
- fn clone(&self) -> fpos_t {
- *self
- }
+extern_ty! {
+ pub enum FILE {}
+ pub enum fpos_t {} // FIXME(fuchsia): fill this out with a struct
}
extern "C" {
@@ -4173,7 +3877,7 @@ extern "C" {
len: size_t,
flags: c_uint,
) -> ssize_t;
- pub fn eventfd(init: c_uint, flags: c_int) -> c_int;
+ pub fn eventfd(initval: c_uint, flags: c_int) -> c_int;
pub fn sched_rr_get_interval(pid: crate::pid_t, tp: *mut crate::timespec) -> c_int;
pub fn sem_timedwait(sem: *mut sem_t, abstime: *const crate::timespec) -> c_int;
pub fn sem_getvalue(sem: *mut sem_t, sval: *mut c_int) -> c_int;
diff --git a/external/vendor/libc/src/fuchsia/riscv64.rs b/external/vendor/libc/src/fuchsia/riscv64.rs
index c57d52a..bc93cc3 100644
--- a/external/vendor/libc/src/fuchsia/riscv64.rs
+++ b/external/vendor/libc/src/fuchsia/riscv64.rs
@@ -17,7 +17,7 @@ s! {
pub st_mode: crate::mode_t,
pub st_uid: crate::uid_t,
pub st_gid: crate::gid_t,
- __pad0: c_int,
+ __pad0: Padding<c_int>,
pub st_rdev: crate::dev_t,
pub st_size: off_t,
pub st_blksize: crate::blksize_t,
@@ -28,7 +28,7 @@ s! {
pub st_mtime_nsec: c_long,
pub st_ctime: crate::time_t,
pub st_ctime_nsec: c_long,
- __unused: [c_long; 3],
+ __unused: Padding<[c_long; 3]>,
}
// Not actually used, IPC calls just return ENOSYS
@@ -40,7 +40,7 @@ s! {
pub cgid: crate::gid_t,
pub mode: crate::mode_t,
pub __seq: c_ushort,
- __unused1: c_ulong,
- __unused2: c_ulong,
+ __unused1: Padding<c_ulong>,
+ __unused2: Padding<c_ulong>,
}
}
diff --git a/external/vendor/libc/src/fuchsia/x86_64.rs b/external/vendor/libc/src/fuchsia/x86_64.rs
index add60a4..fc42cd9 100644
--- a/external/vendor/libc/src/fuchsia/x86_64.rs
+++ b/external/vendor/libc/src/fuchsia/x86_64.rs
@@ -14,7 +14,7 @@ s! {
pub st_mode: crate::mode_t,
pub st_uid: crate::uid_t,
pub st_gid: crate::gid_t,
- __pad0: c_int,
+ __pad0: Padding<c_int>,
pub st_rdev: crate::dev_t,
pub st_size: off_t,
pub st_blksize: crate::blksize_t,
@@ -25,7 +25,7 @@ s! {
pub st_mtime_nsec: c_long,
pub st_ctime: crate::time_t,
pub st_ctime_nsec: c_long,
- __unused: [c_long; 3],
+ __unused: Padding<[c_long; 3]>,
}
pub struct stat64 {
@@ -35,7 +35,7 @@ s! {
pub st_mode: crate::mode_t,
pub st_uid: crate::uid_t,
pub st_gid: crate::gid_t,
- __pad0: c_int,
+ __pad0: Padding<c_int>,
pub st_rdev: crate::dev_t,
pub st_size: off_t,
pub st_blksize: crate::blksize_t,
@@ -46,7 +46,7 @@ s! {
pub st_mtime_nsec: c_long,
pub st_ctime: crate::time_t,
pub st_ctime_nsec: c_long,
- __reserved: [c_long; 3],
+ __reserved: Padding<[c_long; 3]>,
}
pub struct mcontext_t {
@@ -61,12 +61,10 @@ s! {
pub cgid: crate::gid_t,
pub mode: crate::mode_t,
pub __seq: c_int,
- __unused1: c_long,
- __unused2: c_long,
+ __unused1: Padding<c_long>,
+ __unused2: Padding<c_long>,
}
-}
-s_no_extra_traits! {
pub struct ucontext_t {
pub uc_flags: c_ulong,
pub uc_link: *mut ucontext_t,
@@ -77,36 +75,6 @@ s_no_extra_traits! {
}
}
-cfg_if! {
- if #[cfg(feature = "extra_traits")] {
- impl PartialEq for ucontext_t {
- fn eq(&self, other: &ucontext_t) -> bool {
- self.uc_flags == other.uc_flags
- && self.uc_link == other.uc_link
- && self.uc_stack == other.uc_stack
- && self.uc_mcontext == other.uc_mcontext
- && self.uc_sigmask == other.uc_sigmask
- && self
- .__private
- .iter()
- .zip(other.__private.iter())
- .all(|(a, b)| a == b)
- }
- }
- impl Eq for ucontext_t {}
- impl hash::Hash for ucontext_t {
- fn hash<H: hash::Hasher>(&self, state: &mut H) {
- self.uc_flags.hash(state);
- self.uc_link.hash(state);
- self.uc_stack.hash(state);
- self.uc_mcontext.hash(state);
- self.uc_sigmask.hash(state);
- self.__private.hash(state);
- }
- }
- }
-}
-
// offsets in user_regs_structs, from sys/reg.h
pub const R15: c_int = 0;
pub const R14: c_int = 1;
diff --git a/external/vendor/libc/src/hermit.rs b/external/vendor/libc/src/hermit.rs
index b96be6b..2cbf573 100644
--- a/external/vendor/libc/src/hermit.rs
+++ b/external/vendor/libc/src/hermit.rs
@@ -87,9 +87,9 @@ s! {
pub struct sockaddr_storage {
pub ss_len: u8,
pub ss_family: sa_family_t,
- __ss_pad1: [u8; 6],
+ __ss_pad1: Padding<[u8; 6]>,
__ss_align: i64,
- __ss_pad2: [u8; 112],
+ __ss_pad2: Padding<[u8; 112]>,
}
pub struct stat {
@@ -108,6 +108,7 @@ s! {
pub st_ctim: timespec,
}
+ #[derive(Default)]
pub struct timespec {
pub tv_sec: time_t,
pub tv_nsec: i32,
diff --git a/external/vendor/libc/src/lib.rs b/external/vendor/libc/src/lib.rs
index aa919b5..76c668d 100644
--- a/external/vendor/libc/src/lib.rs
+++ b/external/vendor/libc/src/lib.rs
@@ -26,8 +26,8 @@
#![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))]
-#![cfg_attr(libc_thread_local, feature(thread_local))]
#![cfg_attr(feature = "rustc-dep-of-std", allow(internal_features))]
+#![cfg_attr(feature = "rustc-dep-of-std", allow(unused_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))]
#![cfg_attr(not(feature = "rustc-dep-of-std"), no_std)]
@@ -88,6 +88,14 @@ cfg_if! {
mod vxworks;
pub use crate::vxworks::*;
+ prelude!();
+ } else if #[cfg(target_os = "qurt")] {
+ mod primitives;
+ pub use crate::primitives::*;
+
+ mod qurt;
+ pub use crate::qurt::*;
+
prelude!();
} else if #[cfg(target_os = "solid_asp3")] {
mod primitives;
diff --git a/external/vendor/libc/src/macros.rs b/external/vendor/libc/src/macros.rs
index 6906da6..2d2d390 100644
--- a/external/vendor/libc/src/macros.rs
+++ b/external/vendor/libc/src/macros.rs
@@ -76,111 +76,147 @@ macro_rules! prelude {
#[allow(unused_imports)]
pub(crate) use core::default::Default;
#[allow(unused_imports)]
- pub(crate) use core::marker::{Copy, Send, Sync};
+ 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::{fmt, hash, iter, mem, ptr};
+ pub(crate) use core::{
+ cfg,
+ fmt,
+ hash,
+ iter,
+ mem,
+ ptr,
+ };
#[allow(unused_imports)]
pub(crate) use fmt::Debug;
#[allow(unused_imports)]
- pub(crate) use mem::{align_of, align_of_val, size_of, size_of_val};
+ pub(crate) use mem::{
+ align_of,
+ align_of_val,
+ size_of,
+ size_of_val,
+ };
#[allow(unused_imports)]
- pub(crate) use crate::types::{CEnumRepr, Padding};
+ pub(crate) use crate::types::{
+ CEnumRepr,
+ Padding,
+ };
// Commonly used types defined in this crate
#[allow(unused_imports)]
pub(crate) use crate::{
- c_char, c_double, c_float, c_int, c_long, c_longlong, c_short, c_uchar, c_uint,
- c_ulong, c_ulonglong, c_ushort, c_void, intptr_t, size_t, ssize_t, uintptr_t,
+ c_char,
+ c_double,
+ c_float,
+ c_int,
+ c_long,
+ c_longlong,
+ c_short,
+ c_uchar,
+ c_uint,
+ c_ulong,
+ c_ulonglong,
+ c_ushort,
+ c_void,
+ intptr_t,
+ size_t,
+ ssize_t,
+ uintptr_t,
};
}
};
}
-/// Implement `Clone` and `Copy` for a struct, as well as `Debug`, `Eq`, `Hash`, and
-/// `PartialEq` if the `extra_traits` feature is enabled.
+/// Implement `Clone`, `Copy`, and `Debug` for one or more structs, as well as `PartialEq`, `Eq`,
+/// and `Hash` if the `extra_traits` feature is enabled.
+///
+/// Also mark the type with `repr(C)`.
///
/// Use [`s_no_extra_traits`] for structs where the `extra_traits` feature does not
/// make sense, and for unions.
macro_rules! s {
($(
$(#[$attr:meta])*
- pub $t:ident $i:ident { $($field:tt)* }
+ $pub:vis $t:ident $i:ident { $($field:tt)* }
)*) => ($(
- s!(it: $(#[$attr])* pub $t $i { $($field)* });
+ s!(it: $(#[$attr])* $pub $t $i { $($field)* });
)*);
- (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
+ (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => (
compile_error!("unions cannot derive extra traits, use s_no_extra_traits instead");
);
- (it: $(#[$attr:meta])* pub struct $i:ident { $($field:tt)* }) => (
- __item! {
- #[repr(C)]
- #[cfg_attr(
- feature = "extra_traits",
- ::core::prelude::v1::derive(Eq, Hash, PartialEq)
- )]
- #[::core::prelude::v1::derive(
- ::core::clone::Clone,
- ::core::marker::Copy,
- ::core::fmt::Debug,
- )]
- #[allow(deprecated)]
- $(#[$attr])*
- pub struct $i { $($field)* }
- }
+ (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => (
+ #[repr(C)]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
+ #[cfg_attr(
+ feature = "extra_traits",
+ ::core::prelude::v1::derive(PartialEq, Eq, Hash)
+ )]
+ #[allow(deprecated)]
+ $(#[$attr])*
+ $pub struct $i { $($field)* }
);
}
-/// Implement `Clone` and `Copy` for a tuple struct, as well as `Debug`, `Eq`, `Hash`,
-/// and `PartialEq` if the `extra_traits` feature is enabled.
+/// Implement `Clone`, `Copy`, and `Debug` for a tuple struct, as well as `PartialEq`, `Eq`,
+/// and `Hash` if the `extra_traits` feature is enabled.
///
-/// This is the same as [`s`] but works for tuple structs.
+/// Unlike `s!`, this does *not* mark the type with `repr(C)`. Users should provide their own
+/// `repr` attribute via `$attr` as necessary.
macro_rules! s_paren {
($(
$(#[$attr:meta])*
- pub struct $i:ident ( $($field:tt)* );
+ $pub:vis struct $i:ident ( $($field:tt)* );
)*) => ($(
- __item! {
- #[cfg_attr(
- feature = "extra_traits",
- ::core::prelude::v1::derive(Eq, Hash, PartialEq)
- )]
- #[::core::prelude::v1::derive(
- ::core::clone::Clone,
- ::core::marker::Copy,
- ::core::fmt::Debug,
- )]
- $(#[$attr])*
- pub struct $i ( $($field)* );
- }
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
+ #[cfg_attr(
+ feature = "extra_traits",
+ ::core::prelude::v1::derive(PartialEq, Eq, Hash)
+ )]
+ $(#[$attr])*
+ $pub struct $i ( $($field)* );
)*);
}
-/// Implement `Clone`, `Copy`, and `Debug` since those can be derived, but exclude `PartialEq`,
+/// Implement `Clone`, `Copy`, and `Debug` for one or more structs/unions, but exclude `PartialEq`,
/// `Eq`, and `Hash`.
///
-/// Most items will prefer to use [`s`].
+/// Also mark the type with `repr(C)`.
+///
+/// Most structs will prefer to use [`s`].
macro_rules! s_no_extra_traits {
($(
$(#[$attr:meta])*
- pub $t:ident $i:ident { $($field:tt)* }
+ $pub:vis $t:ident $i:ident { $($field:tt)* }
)*) => ($(
- s_no_extra_traits!(it: $(#[$attr])* pub $t $i { $($field)* });
+ s_no_extra_traits!(it: $(#[$attr])* $pub $t $i { $($field)* });
)*);
- (it: $(#[$attr:meta])* pub union $i:ident { $($field:tt)* }) => (
- __item! {
- #[repr(C)]
- #[::core::prelude::v1::derive(::core::clone::Clone, ::core::marker::Copy)]
- $(#[$attr])*
- pub union $i { $($field)* }
- }
+ (it: $(#[$attr:meta])* $pub:vis union $i:ident { $($field:tt)* }) => (
+ #[repr(C)]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ )]
+ $(#[$attr])*
+ $pub union $i { $($field)* }
impl ::core::fmt::Debug for $i {
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
@@ -189,29 +225,37 @@ 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,
- ::core::fmt::Debug,
- )]
- $(#[$attr])*
- pub struct $i { $($field)* }
- }
+ (it: $(#[$attr:meta])* $pub:vis struct $i:ident { $($field:tt)* }) => (
+ #[repr(C)]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
+ $(#[$attr])*
+ $pub struct $i { $($field)* }
);
}
-/// Specify that an enum should have no traits that aren't specified in the macro
-/// invocation, i.e. no `Clone` or `Copy`.
-macro_rules! missing {
+/// Create an uninhabited type that can't be constructed. It implements `Debug`, `Clone`,
+/// and `Copy`, but these aren't meaningful for extern types so they should eventually
+/// be removed.
+///
+/// Really what we want here is something that also can't be named without indirection (in
+/// ADTs or function signatures), but this doesn't exist.
+macro_rules! extern_ty {
($(
$(#[$attr:meta])*
pub enum $i:ident {}
)*) => ($(
$(#[$attr])*
- #[allow(missing_copy_implementations)]
+ // FIXME(1.0): the type is uninhabited so these traits are unreachable and could be
+ // removed.
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
pub enum $i { }
)*);
}
@@ -224,19 +268,17 @@ macro_rules! e {
$(#[$attr:meta])*
pub enum $i:ident { $($field:tt)* }
)*) => ($(
- __item! {
- #[cfg_attr(
- feature = "extra_traits",
- ::core::prelude::v1::derive(Eq, Hash, PartialEq)
- )]
- #[::core::prelude::v1::derive(
- ::core::clone::Clone,
- ::core::marker::Copy,
- ::core::fmt::Debug,
- )]
- $(#[$attr])*
- pub enum $i { $($field)* }
- }
+ #[cfg_attr(
+ feature = "extra_traits",
+ ::core::prelude::v1::derive(Eq, Hash, PartialEq)
+ )]
+ #[::core::prelude::v1::derive(
+ ::core::clone::Clone,
+ ::core::marker::Copy,
+ ::core::fmt::Debug,
+ )]
+ $(#[$attr])*
+ pub enum $i { $($field)* }
)*);
}
@@ -246,40 +288,68 @@ macro_rules! e {
/// unlisted values, but this is UB in Rust. This enum doesn't implement any traits, its main
/// purpose is to calculate the correct enum values.
///
+/// Use the magic name `#anon` if the C enum doesn't create a type.
+///
/// See <https://github.com/rust-lang/libc/issues/4419> for more.
macro_rules! c_enum {
+ // Matcher for multiple enums
($(
$(#[repr($repr:ty)])?
- pub enum $ty_name:ident {
- $($variant:ident $(= $value:expr)?,)+
+ pub enum $($ty_name:ident)? $(#$anon:ident)? {
+ $($vis:vis $variant:ident $(= $value:expr)?,)+
}
)+) => {
- $(c_enum!(@expand;
+ $(c_enum!(@single;
$(#[repr($repr)])?
- pub enum $ty_name {
- $($variant $(= $value)?,)+
+ pub enum $($ty_name)? $(#$anon)? {
+ $($vis $variant $(= $value)?,)+
}
);)+
};
- (@expand;
+ // Matcher for a single enum
+ (@single;
$(#[repr($repr:ty)])?
pub enum $ty_name:ident {
- $($variant:ident $(= $value:expr)?,)+
+ $($vis:vis $variant:ident $(= $value:expr)?,)+
}
) => {
pub type $ty_name = c_enum!(@ty $($repr)?);
- c_enum!(@one; $ty_name; 0; $($variant $(= $value)?,)+);
+ c_enum! {
+ @variant;
+ ty: $ty_name;
+ default: 0;
+ variants: [$($vis $variant $(= $value)?,)+]
+ }
+ };
+
+ // Matcher for a single anonymous enum
+ (@single;
+ $(#[repr($repr:ty)])?
+ pub enum #anon {
+ $($vis:vis $variant:ident $(= $value:expr)?,)+
+ }
+ ) => {
+ c_enum! {
+ @variant;
+ ty: c_enum!(@ty $($repr)?);
+ default: 0;
+ variants: [$($vis $variant $(= $value)?,)+]
+ }
};
- // Matcher for a single variant
- (@one; $_ty_name:ident; $_idx:expr;) => {};
+ // Matcher for variants: eats a single variant then recurses with the rest
+ (@variant; ty: $_ty_name:ty; default: $_idx:expr; variants: []) => { /* end of the chain */ };
(
- @one; $ty_name:ident; $default_val:expr;
- $variant:ident $(= $value:expr)?,
- $($tail:tt)*
+ @variant;
+ ty: $ty_name:ty;
+ default: $default_val:expr;
+ variants: [
+ $vis:vis $variant:ident $(= $value:expr)?,
+ $($tail:tt)*
+ ]
) => {
- pub const $variant: $ty_name = {
+ $vis const $variant: $ty_name = {
#[allow(unused_variables)]
let r = $default_val;
$(let r = $value;)?
@@ -288,7 +358,12 @@ macro_rules! c_enum {
// The next value is always one more than the previous value, unless
// set explicitly.
- c_enum!(@one; $ty_name; $variant + 1; $($tail)*);
+ c_enum! {
+ @variant;
+ ty: $ty_name;
+ default: $variant + 1;
+ variants: [$($tail)*]
+ }
};
// Use a specific type if provided, otherwise default to `CEnumRepr`
@@ -330,12 +405,6 @@ macro_rules! safe_f {
)+};
}
-macro_rules! __item {
- ($i:item) => {
- $i
- };
-}
-
// This macro is used to deprecate items that should be accessed via the mach2 crate
macro_rules! deprecated_mach {
(pub const $id:ident: $ty:ty = $expr:expr;) => {
@@ -370,12 +439,33 @@ macro_rules! deprecated_mach {
}
}
+/// Polyfill for std's `offset_of`.
+// FIXME(msrv): stabilized in std in 1.77
+macro_rules! offset_of {
+ ($Ty:path, $field:ident) => {{
+ // Taken from bytemuck, avoids accidentally calling on deref
+ #[allow(clippy::unneeded_field_pattern)]
+ let $Ty { $field: _, .. };
+ let data = core::mem::MaybeUninit::<$Ty>::uninit();
+ let ptr = data.as_ptr();
+ // nested unsafe, see f!
+ #[allow(unused_unsafe)]
+ // SAFETY: computed address is inbounds since we have a stack alloc for T
+ let fptr = unsafe { core::ptr::addr_of!((*ptr).$field) };
+ let off = (fptr as usize).checked_sub(ptr as usize).unwrap();
+ core::assert!(off <= core::mem::size_of::<$Ty>());
+ off
+ }};
+}
+
#[cfg(test)]
mod tests {
+ use core::any::TypeId;
+
use crate::types::CEnumRepr;
#[test]
- fn c_enumbasic() {
+ fn c_enum_basic() {
// By default, variants get sequential values.
c_enum! {
pub enum e {
@@ -383,28 +473,50 @@ mod tests {
VAR1,
VAR2,
}
+
+ // Also check enums that don't create a type.
+ pub enum #anon {
+ ANON0,
+ ANON1,
+ ANON2,
+ }
}
+ assert_eq!(TypeId::of::<e>(), TypeId::of::<CEnumRepr>());
assert_eq!(VAR0, 0 as CEnumRepr);
assert_eq!(VAR1, 1 as CEnumRepr);
assert_eq!(VAR2, 2 as CEnumRepr);
+
+ assert_eq!(type_id_of_val(&ANON0), TypeId::of::<CEnumRepr>());
+ assert_eq!(ANON0, 0 as CEnumRepr);
+ assert_eq!(ANON1, 1 as CEnumRepr);
+ assert_eq!(ANON2, 2 as CEnumRepr);
}
#[test]
- fn c_enumrepr() {
- // By default, variants get sequential values.
+ fn c_enum_repr() {
+ // Check specifying the integer representation
c_enum! {
#[repr(u16)]
pub enum e {
VAR0,
}
+
+ #[repr(u16)]
+ pub enum #anon {
+ ANON0,
+ }
}
+ assert_eq!(TypeId::of::<e>(), TypeId::of::<u16>());
assert_eq!(VAR0, 0_u16);
+
+ assert_eq!(type_id_of_val(&ANON0), TypeId::of::<u16>());
+ assert_eq!(ANON0, 0_u16);
}
#[test]
- fn c_enumset_value() {
+ fn c_enum_set_value() {
// Setting an explicit value resets the count.
c_enum! {
pub enum e {
@@ -420,7 +532,7 @@ mod tests {
}
#[test]
- fn c_enummultiple_set_value() {
+ fn c_enum_multiple_set_value() {
// C enums always take one more than the previous value, unless set to a specific
// value. Duplicates are allowed.
c_enum! {
@@ -443,4 +555,100 @@ mod tests {
assert_eq!(VAR3_1, 3 as CEnumRepr);
assert_eq!(VAR4_1, 4 as CEnumRepr);
}
+
+ #[test]
+ fn c_enum_vis() {
+ mod priv1 {
+ c_enum! {
+ #[repr(u8)]
+ pub enum e1 {
+ PRIV_ON_1 = 10,
+ // Variant should still be usable within its visibility
+ pub PUB1 = PRIV_ON_1 * 2,
+ }
+ }
+ }
+ mod priv2 {
+ c_enum! {
+ #[repr(u16)]
+ pub enum e2 {
+ pub PRIV_ON_1 = 42,
+ pub PUB2 = PRIV_ON_1 * 2,
+ }
+ }
+ }
+
+ use priv1::*;
+ use priv2::*;
+
+ assert_eq!(TypeId::of::<e1>(), TypeId::of::<u8>());
+ assert_eq!(TypeId::of::<e2>(), TypeId::of::<u16>());
+ assert_eq!(PUB1, 10u8 * 2);
+ assert_eq!(PUB2, 42u16 * 2);
+ // Verify that the default is private. If `PRIV_ON_1` was actually public in `priv1`, this
+ // would be an ambiguous import and/or type mismatch error.
+ assert_eq!(PRIV_ON_1, 42u16);
+ }
+
+ fn type_id_of_val<T: 'static>(_: &T) -> TypeId {
+ TypeId::of::<T>()
+ }
+
+ #[test]
+ fn test_offset_of() {
+ #[repr(C)]
+ struct Off1 {
+ a: u8,
+ b: u32,
+ c: Off2,
+ d: u64,
+ }
+
+ #[repr(C)]
+ #[repr(align(128))]
+ struct Off2 {}
+
+ assert_eq!(core::mem::offset_of!(Off1, a), offset_of!(Off1, a));
+ assert_eq!(core::mem::offset_of!(Off1, b), offset_of!(Off1, b));
+ assert_eq!(core::mem::offset_of!(Off1, c), offset_of!(Off1, c));
+ assert_eq!(core::mem::offset_of!(Off1, d), offset_of!(Off1, d));
+ }
+}
+
+#[cfg(test)]
+#[allow(unused)]
+mod macro_checks {
+ s! {
+ pub struct S1 {
+ pub a: u32,
+ b: u32,
+ }
+
+ struct S1Priv {
+ pub a: u32,
+ b: u32,
+ }
+ }
+
+ s_no_extra_traits! {
+ pub struct S2 {
+ pub a: u32,
+ b: u32,
+ }
+
+ struct S2Priv {
+ pub a: u32,
+ b: u32,
+ }
+
+ pub union U2 {
+ pub a: u32,
+ b: f32,
+ }
+
+ union U2Priv {
+ pub a: u32,
+ b: f32,
+ }
+ }
}
diff --git a/external/vendor/libc/src/new/aix/mod.rs b/external/vendor/libc/src/new/aix/mod.rs
new file mode 100644
index 0000000..c99b206
--- /dev/null
+++ b/external/vendor/libc/src/new/aix/mod.rs
@@ -0,0 +1,6 @@
+//! IBM AIX libc.
+//!
+//! * Headers are not public
+//! * Manual pages: <https://www.ibm.com/docs/en/aix> (under "Technical reference" for that version)
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/aix/unistd.rs b/external/vendor/libc/src/new/aix/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/aix/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/apple/libc/signal.rs b/external/vendor/libc/src/new/apple/libc/signal.rs
new file mode 100644
index 0000000..b5f8d59
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libc/signal.rs
@@ -0,0 +1,5 @@
+//! Header: `signal.h`
+//!
+//! <https://github.com/apple-oss-distributions/Libc/blob/main/include/signal.h>
+
+pub use crate::sys::signal::*;
diff --git a/external/vendor/libc/src/new/apple/libc/unistd.rs b/external/vendor/libc/src/new/apple/libc/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libc/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/apple/libpthread/mod.rs b/external/vendor/libc/src/new/apple/libpthread/mod.rs
new file mode 100644
index 0000000..66f25e6
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/mod.rs
@@ -0,0 +1,20 @@
+//! Source from libpthread <https://github.com/apple-oss-distributions/libpthread/tree/main>
+
+/// Directory: `pthread/`
+///
+/// Note that this module has a trailing underscore to avoid conflicting with its child `pthread`
+/// module.
+///
+/// <https://github.com/apple-oss-distributions/libpthread/tree/main/include/pthread>
+pub(crate) mod pthread_ {
+ pub(crate) mod introspection;
+ pub(crate) mod pthread;
+ pub(crate) mod pthread_impl;
+ pub(crate) mod pthread_spis;
+ pub(crate) mod qos;
+ pub(crate) mod sched;
+ pub(crate) mod spawn;
+ pub(crate) mod stack_np;
+}
+
+pub(crate) mod sys;
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/introspection.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/introspection.rs
new file mode 100644
index 0000000..6509e22
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/introspection.rs
@@ -0,0 +1,36 @@
+//! Header: `pthread/introspection.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/introspection.h>
+
+use crate::prelude::*;
+pub use crate::pthread_::pthread::*;
+
+c_enum! {
+ #[repr(c_uint)]
+ pub enum #anon {
+ pub PTHREAD_INTROSPECTION_THREAD_CREATE = 1,
+ pub PTHREAD_INTROSPECTION_THREAD_START,
+ pub PTHREAD_INTROSPECTION_THREAD_TERMINATE,
+ pub PTHREAD_INTROSPECTION_THREAD_DESTROY,
+ }
+}
+
+pub type pthread_introspection_hook_t =
+ extern "C" fn(event: c_uint, thread: pthread_t, addr: *mut c_void, size: size_t);
+
+extern "C" {
+ // Available from Big Sur
+ pub fn pthread_introspection_hook_install(
+ hook: pthread_introspection_hook_t,
+ ) -> pthread_introspection_hook_t;
+ pub fn pthread_introspection_setspecific_np(
+ thread: pthread_t,
+ key: pthread_key_t,
+ value: *const c_void,
+ ) -> c_int;
+
+ pub fn pthread_introspection_getspecific_np(
+ thread: pthread_t,
+ key: pthread_key_t,
+ ) -> *mut c_void;
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread.rs
new file mode 100644
index 0000000..a7e56be
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread.rs
@@ -0,0 +1,76 @@
+//! Header: `pthread.h` or `pthread/pthread.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/pthread.h>
+
+use crate::prelude::*;
+pub use crate::pthread_::qos::*;
+pub use crate::pthread_::sched::*;
+// No need to import from the `_pthread_attr_t` and similar modules since `_pthread_types` has
+// everything we need.
+pub use crate::sys::_pthread::_pthread_types::*;
+
+pub const PTHREAD_CREATE_JOINABLE: c_int = 1;
+pub const PTHREAD_CREATE_DETACHED: c_int = 2;
+
+pub const PTHREAD_INHERIT_SCHED: c_int = 1;
+pub const PTHREAD_EXPLICIT_SCHED: c_int = 2;
+
+pub const PTHREAD_CANCEL_ENABLE: c_int = 0x01;
+pub const PTHREAD_CANCEL_DISABLE: c_int = 0x00;
+pub const PTHREAD_CANCEL_DEFERRED: c_int = 0x02;
+pub const PTHREAD_CANCEL_ASYNCHRONOUS: c_int = 0x00;
+
+pub const PTHREAD_CANCELED: *mut c_void = 1 as *mut c_void;
+
+pub const PTHREAD_SCOPE_SYSTEM: c_int = 1;
+pub const PTHREAD_SCOPE_PROCESS: c_int = 2;
+
+pub const PTHREAD_PROCESS_SHARED: c_int = 1;
+pub const PTHREAD_PROCESS_PRIVATE: c_int = 2;
+
+pub const PTHREAD_PRIO_NONE: c_int = 0;
+pub const PTHREAD_PRIO_INHERIT: c_int = 1;
+pub const PTHREAD_PRIO_PROTECT: c_int = 2;
+
+pub const PTHREAD_MUTEX_NORMAL: c_int = 0;
+pub const PTHREAD_MUTEX_ERRORCHECK: c_int = 1;
+pub const PTHREAD_MUTEX_RECURSIVE: c_int = 2;
+pub const PTHREAD_MUTEX_DEFAULT: c_int = PTHREAD_MUTEX_NORMAL;
+
+pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
+ __sig: _PTHREAD_RWLOCK_SIG_init,
+ __opaque: [0; __PTHREAD_RWLOCK_SIZE__],
+};
+
+pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
+ __sig: _PTHREAD_MUTEX_SIG_init,
+ __opaque: [0; __PTHREAD_MUTEX_SIZE__],
+};
+
+pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
+ __sig: _PTHREAD_COND_SIG_init,
+ __opaque: [0; __PTHREAD_COND_SIZE__],
+};
+
+pub const PTHREAD_ONCE_INIT: crate::pthread_once_t = crate::pthread_once_t {
+ __sig: _PTHREAD_ONCE_SIG_INIT,
+ __opaque: [0; __PTHREAD_ONCE_SIZE__],
+};
+
+pub use crate::new::common::posix::pthread::{
+ pthread_attr_getinheritsched,
+ pthread_attr_getschedparam,
+ pthread_attr_getschedpolicy,
+ pthread_attr_setinheritsched,
+ pthread_attr_setschedparam,
+ pthread_attr_setschedpolicy,
+ pthread_condattr_getpshared,
+ pthread_condattr_setpshared,
+ pthread_getschedparam,
+ pthread_mutexattr_getpshared,
+ pthread_mutexattr_setpshared,
+ pthread_once,
+ pthread_rwlockattr_getpshared,
+ pthread_rwlockattr_setpshared,
+ pthread_setschedparam,
+};
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_impl.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_impl.rs
new file mode 100644
index 0000000..92c5e27
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_impl.rs
@@ -0,0 +1,12 @@
+use crate::prelude::*;
+
+// FIXME(apple): these should all be `pub(crate)`
+pub const _PTHREAD_MUTEX_SIG_init: c_long = 0x32AAABA7;
+
+pub const _PTHREAD_COND_SIG_init: c_long = 0x3CB0B1BB;
+pub(crate) const _PTHREAD_ONCE_SIG_INIT: c_long = 0x30B1BCBA;
+pub const _PTHREAD_RWLOCK_SIG_init: c_long = 0x2DA8B3B4;
+
+pub const SCHED_OTHER: c_int = 1;
+pub const SCHED_FIFO: c_int = 4;
+pub const SCHED_RR: c_int = 2;
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_spis.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_spis.rs
new file mode 100644
index 0000000..24e3fed
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/pthread_spis.rs
@@ -0,0 +1,14 @@
+//! Header: `pthread/pthread_spis.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/pthread_spis.h>
+
+use crate::prelude::*;
+
+extern "C" {
+ pub fn pthread_create_from_mach_thread(
+ thread: *mut crate::pthread_t,
+ attr: *const crate::pthread_attr_t,
+ f: extern "C" fn(*mut c_void) -> *mut c_void,
+ value: *mut c_void,
+ ) -> c_int;
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/qos.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/qos.rs
new file mode 100644
index 0000000..8b68c78
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/qos.rs
@@ -0,0 +1,25 @@
+//! Header: `pthread/qos.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/qos.h>
+
+use crate::prelude::*;
+pub use crate::sys::qos::*;
+
+extern "C" {
+ pub fn pthread_attr_set_qos_class_np(
+ attr: *mut crate::pthread_attr_t,
+ class: qos_class_t,
+ priority: c_int,
+ ) -> c_int;
+ pub fn pthread_attr_get_qos_class_np(
+ attr: *mut crate::pthread_attr_t,
+ class: *mut qos_class_t,
+ priority: *mut c_int,
+ ) -> c_int;
+ pub fn pthread_set_qos_class_self_np(class: qos_class_t, priority: c_int) -> c_int;
+ pub fn pthread_get_qos_class_np(
+ thread: crate::pthread_t,
+ class: *mut qos_class_t,
+ priority: *mut c_int,
+ ) -> c_int;
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/sched.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/sched.rs
new file mode 100644
index 0000000..d25a6cb
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/sched.rs
@@ -0,0 +1,9 @@
+pub use crate::new::pthread_::pthread_impl::*;
+use crate::prelude::*;
+
+s! {
+ pub struct sched_param {
+ pub sched_priority: c_int,
+ __opaque: [c_char; 4],
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/spawn.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/spawn.rs
new file mode 100644
index 0000000..c5bdb7a
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/spawn.rs
@@ -0,0 +1,16 @@
+//! Header: `pthread/spawn.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/spawn.h>
+
+use crate::prelude::*;
+
+extern "C" {
+ pub fn posix_spawnattr_set_qos_class_np(
+ attr: *mut crate::posix_spawnattr_t,
+ qos_class: crate::qos_class_t,
+ ) -> c_int;
+ pub fn posix_spawnattr_get_qos_class_np(
+ attr: *const crate::posix_spawnattr_t,
+ qos_class: *mut crate::qos_class_t,
+ ) -> c_int;
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/pthread_/stack_np.rs b/external/vendor/libc/src/new/apple/libpthread/pthread_/stack_np.rs
new file mode 100644
index 0000000..0d501cd
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/pthread_/stack_np.rs
@@ -0,0 +1,12 @@
+//! Header: `pthread/stack_np.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/pthread/stack_np.h>
+
+use crate::prelude::*;
+
+extern "C" {
+ pub fn pthread_stack_frame_decode_np(
+ frame_addr: uintptr_t,
+ return_addr: *mut uintptr_t,
+ ) -> uintptr_t;
+}
diff --git a/external/vendor/libc/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs b/external/vendor/libc/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs
new file mode 100644
index 0000000..95e181c
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/sys/_pthread/_pthread_types.rs
@@ -0,0 +1,79 @@
+//! Header: `sys/_pthread/_pthread_types.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/sys/_pthread/_pthread_types.h>
+//!
+//! Note that the actual header defines `_opaque_pthread_*` structs which are typedefed to
+//! `__darwin_pthread*` structs, and typedefed again in separate `_pthread_*.h` files to their final
+//! `pthread_` name. This isn't useful for us so we simplify a bit and just define everything here.
+
+use crate::prelude::*;
+
+cfg_if! {
+ if #[cfg(target_pointer_width = "64")] {
+ pub const __PTHREAD_SIZE__: usize = 8176;
+ pub const __PTHREAD_ATTR_SIZE__: usize = 56;
+ pub const __PTHREAD_MUTEXATTR_SIZE__: usize = 8;
+ pub const __PTHREAD_MUTEX_SIZE__: usize = 56;
+ pub const __PTHREAD_CONDATTR_SIZE__: usize = 8;
+ pub const __PTHREAD_COND_SIZE__: usize = 40;
+ pub const __PTHREAD_ONCE_SIZE__: usize = 8;
+ pub const __PTHREAD_RWLOCK_SIZE__: usize = 192;
+ pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 16;
+ } else {
+ pub const __PTHREAD_SIZE__: usize = 4088;
+ pub const __PTHREAD_ATTR_SIZE__: usize = 36;
+ pub const __PTHREAD_MUTEXATTR_SIZE__: usize = 8;
+ pub const __PTHREAD_MUTEX_SIZE__: usize = 40;
+ pub const __PTHREAD_CONDATTR_SIZE__: usize = 4;
+ pub const __PTHREAD_COND_SIZE__: usize = 24;
+ pub const __PTHREAD_ONCE_SIZE__: usize = 4;
+ pub const __PTHREAD_RWLOCK_SIZE__: usize = 124;
+ pub const __PTHREAD_RWLOCKATTR_SIZE__: usize = 12;
+ }
+}
+
+s! {
+ pub struct pthread_attr_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [c_char; __PTHREAD_ATTR_SIZE__],
+ }
+
+ pub struct pthread_cond_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_COND_SIZE__],
+ }
+
+ pub struct pthread_condattr_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_CONDATTR_SIZE__],
+ }
+
+ pub struct pthread_mutex_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_MUTEX_SIZE__],
+ }
+
+ pub struct pthread_mutexattr_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_MUTEXATTR_SIZE__],
+ }
+
+ pub struct pthread_once_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [c_char; __PTHREAD_ONCE_SIZE__],
+ }
+
+ pub struct pthread_rwlock_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_RWLOCK_SIZE__],
+ }
+
+ pub struct pthread_rwlockattr_t {
+ pub(crate) __sig: c_long,
+ pub(crate) __opaque: [u8; __PTHREAD_RWLOCKATTR_SIZE__],
+ }
+}
+
+pub type pthread_key_t = c_ulong;
+
+pub use crate::pthread_t;
diff --git a/external/vendor/libc/src/new/apple/libpthread/sys/mod.rs b/external/vendor/libc/src/new/apple/libpthread/sys/mod.rs
new file mode 100644
index 0000000..da0a229
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/sys/mod.rs
@@ -0,0 +1,14 @@
+//! Directory: `sys/`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/tree/main/include/sys/_pthread>
+
+/// Directory: `sys/_pthread/`
+///
+/// <https://github.com/apple-oss-distributions/libpthread/tree/main/include/sys>
+pub(crate) mod _pthread {
+ // We don't have the `_pthread_attr_t` and similar modules to match `_pthread_attr_t.h`,
+ // everything is defined in `_pthread_types`.
+ pub(crate) mod _pthread_types;
+}
+
+pub(crate) mod qos;
diff --git a/external/vendor/libc/src/new/apple/libpthread/sys/qos.rs b/external/vendor/libc/src/new/apple/libpthread/sys/qos.rs
new file mode 100644
index 0000000..9d9a2eb
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/libpthread/sys/qos.rs
@@ -0,0 +1,22 @@
+//! Header: `sys/qos.h`
+//!
+//! <https://github.com/apple-oss-distributions/libpthread/blob/main/include/sys/qos.h>
+
+use crate::prelude::*;
+
+#[derive(Debug)]
+#[repr(u32)]
+pub enum qos_class_t {
+ QOS_CLASS_USER_INTERACTIVE = 0x21,
+ QOS_CLASS_USER_INITIATED = 0x19,
+ QOS_CLASS_DEFAULT = 0x15,
+ QOS_CLASS_UTILITY = 0x11,
+ QOS_CLASS_BACKGROUND = 0x09,
+ QOS_CLASS_UNSPECIFIED = 0x00,
+}
+impl Copy for qos_class_t {}
+impl Clone for qos_class_t {
+ fn clone(&self) -> qos_class_t {
+ *self
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/mod.rs b/external/vendor/libc/src/new/apple/mod.rs
new file mode 100644
index 0000000..beb8caa
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/mod.rs
@@ -0,0 +1,20 @@
+//! Apple interfaces.
+//!
+//! The Xcode SDK includes interfaces that are split across a couple of different libraries. Most
+//! of these are available at <https://github.com/apple-oss-distributions>.
+
+/// Entrypoint for Apple headers, usually found as part of the Xcode SDK.
+///
+/// <https://github.com/apple-oss-distributions/Libc/tree/main/include>
+mod libc {
+ pub(crate) mod signal;
+ pub(crate) mod unistd;
+}
+
+mod libpthread;
+mod xnu;
+
+pub(crate) use libc::*;
+pub(crate) use libpthread::pthread_;
+pub(crate) use pthread_::pthread;
+pub(crate) use xnu::*;
diff --git a/external/vendor/libc/src/new/apple/xnu/arm/_mcontext.rs b/external/vendor/libc/src/new/apple/xnu/arm/_mcontext.rs
new file mode 100644
index 0000000..ae22f7a
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/arm/_mcontext.rs
@@ -0,0 +1,15 @@
+//! Header: `arm/_mcontext.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/bsd/arm/_mcontext.h>
+
+pub use crate::mach::machine::_structs::*;
+
+s! {
+ pub struct __darwin_mcontext64 {
+ pub __es: __darwin_arm_exception_state64,
+ pub __ss: __darwin_arm_thread_state64,
+ pub __ns: __darwin_arm_neon_state64,
+ }
+}
+
+pub type mcontext_t = *mut __darwin_mcontext64;
diff --git a/external/vendor/libc/src/new/apple/xnu/i386/_mcontext.rs b/external/vendor/libc/src/new/apple/xnu/i386/_mcontext.rs
new file mode 100644
index 0000000..2b07ad1
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/i386/_mcontext.rs
@@ -0,0 +1,15 @@
+//! Header: `i386/_mcontext.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/bsd/i386/_mcontext.h>
+
+pub use crate::mach::machine::_structs::*;
+
+s! {
+ pub struct __darwin_mcontext64 {
+ pub __es: __darwin_x86_exception_state64,
+ pub __ss: __darwin_x86_thread_state64,
+ pub __fs: __darwin_x86_float_state64,
+ }
+}
+
+pub type mcontext_t = *mut __darwin_mcontext64;
diff --git a/external/vendor/libc/src/new/apple/xnu/mach/arm/_structs.rs b/external/vendor/libc/src/new/apple/xnu/mach/arm/_structs.rs
new file mode 100644
index 0000000..c0ebce4
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/mach/arm/_structs.rs
@@ -0,0 +1,37 @@
+//! Header: `arm/_structs.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/arm/_structs.h>
+
+#[cfg(target_arch = "arm")]
+use crate::prelude::*;
+
+s! {
+ pub struct __darwin_arm_exception_state64 {
+ pub __far: u64,
+ pub __esr: u32,
+ pub __exception: u32,
+ }
+
+ pub struct __darwin_arm_thread_state64 {
+ pub __x: [u64; 29],
+ pub __fp: u64,
+ pub __lr: u64,
+ pub __sp: u64,
+ pub __pc: u64,
+ pub __cpsr: u32,
+ pub __pad: u32,
+ }
+
+ #[cfg(target_arch = "aarch64")]
+ pub struct __darwin_arm_neon_state64 {
+ pub __v: [crate::__uint128_t; 32],
+ pub __fpsr: u32,
+ pub __fpcr: u32,
+ }
+
+ #[cfg(target_arch = "arm")]
+ #[repr(align(16))]
+ pub struct __darwin_arm_neon_state64 {
+ opaque: [c_char; (32 * 16) + (2 * size_of::<u32>())],
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/xnu/mach/i386/_structs.rs b/external/vendor/libc/src/new/apple/xnu/mach/i386/_structs.rs
new file mode 100644
index 0000000..15822f7
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/mach/i386/_structs.rs
@@ -0,0 +1,92 @@
+//! Header: `i386/_structs.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/i386/_structs.h>
+
+use crate::prelude::*;
+
+s! {
+ pub struct __darwin_mmst_reg {
+ pub __mmst_reg: [c_char; 10],
+ pub __mmst_rsrv: [c_char; 6],
+ }
+
+ pub struct __darwin_xmm_reg {
+ pub __xmm_reg: [c_char; 16],
+ }
+
+ pub struct __darwin_x86_thread_state64 {
+ pub __rax: u64,
+ pub __rbx: u64,
+ pub __rcx: u64,
+ pub __rdx: u64,
+ pub __rdi: u64,
+ pub __rsi: u64,
+ pub __rbp: u64,
+ pub __rsp: u64,
+ pub __r8: u64,
+ pub __r9: u64,
+ pub __r10: u64,
+ pub __r11: u64,
+ pub __r12: u64,
+ pub __r13: u64,
+ pub __r14: u64,
+ pub __r15: u64,
+ pub __rip: u64,
+ pub __rflags: u64,
+ pub __cs: u64,
+ pub __fs: u64,
+ pub __gs: u64,
+ }
+
+ pub struct __darwin_x86_exception_state64 {
+ pub __trapno: u16,
+ pub __cpu: u16,
+ pub __err: u32,
+ pub __faultvaddr: u64,
+ }
+
+ pub struct __darwin_x86_float_state64 {
+ pub __fpu_reserved: [c_int; 2],
+ __fpu_fcw: c_short,
+ __fpu_fsw: c_short,
+ pub __fpu_ftw: u8,
+ pub __fpu_rsrv1: u8,
+ pub __fpu_fop: u16,
+ pub __fpu_ip: u32,
+ pub __fpu_cs: u16,
+ pub __fpu_rsrv2: u16,
+ pub __fpu_dp: u32,
+ pub __fpu_ds: u16,
+ pub __fpu_rsrv3: u16,
+ pub __fpu_mxcsr: u32,
+ pub __fpu_mxcsrmask: u32,
+ pub __fpu_stmm0: __darwin_mmst_reg,
+ pub __fpu_stmm1: __darwin_mmst_reg,
+ pub __fpu_stmm2: __darwin_mmst_reg,
+ pub __fpu_stmm3: __darwin_mmst_reg,
+ pub __fpu_stmm4: __darwin_mmst_reg,
+ pub __fpu_stmm5: __darwin_mmst_reg,
+ pub __fpu_stmm6: __darwin_mmst_reg,
+ pub __fpu_stmm7: __darwin_mmst_reg,
+ pub __fpu_xmm0: __darwin_xmm_reg,
+ pub __fpu_xmm1: __darwin_xmm_reg,
+ pub __fpu_xmm2: __darwin_xmm_reg,
+ pub __fpu_xmm3: __darwin_xmm_reg,
+ pub __fpu_xmm4: __darwin_xmm_reg,
+ pub __fpu_xmm5: __darwin_xmm_reg,
+ pub __fpu_xmm6: __darwin_xmm_reg,
+ pub __fpu_xmm7: __darwin_xmm_reg,
+ pub __fpu_xmm8: __darwin_xmm_reg,
+ pub __fpu_xmm9: __darwin_xmm_reg,
+ pub __fpu_xmm10: __darwin_xmm_reg,
+ pub __fpu_xmm11: __darwin_xmm_reg,
+ pub __fpu_xmm12: __darwin_xmm_reg,
+ pub __fpu_xmm13: __darwin_xmm_reg,
+ pub __fpu_xmm14: __darwin_xmm_reg,
+ pub __fpu_xmm15: __darwin_xmm_reg,
+ // FIXME(apple): this field is actually [u8; 96], but defining it with a bigger type allows
+ // us to auto-implement traits for it since the length of the array is less than 32
+ __fpu_rsrv4: [u32; 24],
+ pub __fpu_reserved1: c_int,
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/xnu/mach/machine/_structs.rs b/external/vendor/libc/src/new/apple/xnu/mach/machine/_structs.rs
new file mode 100644
index 0000000..6acae8d
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/mach/machine/_structs.rs
@@ -0,0 +1,13 @@
+//! Header: `mach/machine/_structs.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/osfmk/mach/machine/_structs.h>
+
+cfg_if! {
+ if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
+ pub use crate::mach::i386::_structs::*;
+ } else if #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] {
+ pub use crate::mach::arm::_structs::*;
+ } else {
+ // Unsupported arch
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/xnu/mach/mod.rs b/external/vendor/libc/src/new/apple/xnu/mach/mod.rs
new file mode 100644
index 0000000..9075126
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/mach/mod.rs
@@ -0,0 +1,20 @@
+//! Directory: `mach/`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/tree/main/osfmk/mach>
+
+/// Directory: `mach/arm`
+#[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
+pub(crate) mod arm {
+ pub(crate) mod _structs;
+}
+
+/// Directory: `mach/i386`
+#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
+pub(crate) mod i386 {
+ pub(crate) mod _structs;
+}
+
+/// Directory: `mach/machine`
+pub(crate) mod machine {
+ pub(crate) mod _structs;
+}
diff --git a/external/vendor/libc/src/new/apple/xnu/machine/_mcontext.rs b/external/vendor/libc/src/new/apple/xnu/machine/_mcontext.rs
new file mode 100644
index 0000000..004b947
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/machine/_mcontext.rs
@@ -0,0 +1,11 @@
+//! Header: `machine/_mcontext.h`
+
+cfg_if! {
+ if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
+ pub use crate::i386::_mcontext::*;
+ } else if #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] {
+ pub use crate::arm::_mcontext::*;
+ } else {
+ // Unsupported arch
+ }
+}
diff --git a/external/vendor/libc/src/new/apple/xnu/mod.rs b/external/vendor/libc/src/new/apple/xnu/mod.rs
new file mode 100644
index 0000000..8b8afb6
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/mod.rs
@@ -0,0 +1,30 @@
+//! Source from XNU <https://github.com/apple-oss-distributions/xnu/tree/main>
+//!
+//! We omit nesting for the `bsd` module since most items of interest are in there.
+
+/// Directory: `arm/`
+///
+/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/arm
+#[cfg(any(target_arch = "arm", target_arch = "aarch64"))]
+pub(crate) mod arm {
+ pub(crate) mod _mcontext;
+}
+
+/// Directory: `i386/`
+///
+/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/i386
+#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
+pub(crate) mod i386 {
+ pub(crate) mod _mcontext;
+}
+
+pub(crate) mod mach;
+
+/// Directory: `machine/`
+///
+/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/machine
+pub(crate) mod machine {
+ pub(crate) mod _mcontext;
+}
+
+pub(crate) mod sys;
diff --git a/external/vendor/libc/src/new/apple/xnu/sys/_types/_ucontext.rs b/external/vendor/libc/src/new/apple/xnu/sys/_types/_ucontext.rs
new file mode 100644
index 0000000..53bc0f2
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/sys/_types/_ucontext.rs
@@ -0,0 +1,17 @@
+//! Header: `sys/_types/_ucontext.h`
+
+pub use crate::machine::_mcontext::*;
+use crate::prelude::*;
+
+s! {
+ pub struct __darwin_ucontext {
+ pub uc_onstack: c_int,
+ pub uc_sigmask: crate::sigset_t,
+ pub uc_stack: crate::stack_t,
+ pub uc_link: *mut ucontext_t,
+ pub uc_mcsize: usize,
+ pub uc_mcontext: mcontext_t,
+ }
+}
+
+pub type ucontext_t = __darwin_ucontext;
diff --git a/external/vendor/libc/src/new/apple/xnu/sys/mod.rs b/external/vendor/libc/src/new/apple/xnu/sys/mod.rs
new file mode 100644
index 0000000..ad4a204
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/sys/mod.rs
@@ -0,0 +1,15 @@
+//! Directory: `sys/`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/tree/main/bsd/sys>
+
+pub(crate) mod signal;
+
+/// Directory: `sys/_types`
+///
+/// https://github.com/apple-oss-distributions/xnu/tree/main/bsd/sys/_types
+pub(crate) mod _types {
+ pub(crate) mod _ucontext;
+}
+
+// Bit of a hack since the directories get merged and we can't have >1 sys module.
+pub(crate) use crate::new::apple::libpthread::sys::*;
diff --git a/external/vendor/libc/src/new/apple/xnu/sys/signal.rs b/external/vendor/libc/src/new/apple/xnu/sys/signal.rs
new file mode 100644
index 0000000..844793e
--- /dev/null
+++ b/external/vendor/libc/src/new/apple/xnu/sys/signal.rs
@@ -0,0 +1,6 @@
+//! Header: `sys/signal.h`
+//!
+//! <https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/signal.h>
+
+pub use crate::machine::_mcontext::*;
+pub use crate::sys::_types::_ucontext::*;
diff --git a/external/vendor/libc/src/new/bionic/mod.rs b/external/vendor/libc/src/new/bionic/mod.rs
deleted file mode 100644
index 644a4ab..0000000
--- a/external/vendor/libc/src/new/bionic/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-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
deleted file mode 100644
index fd96d08..0000000
--- a/external/vendor/libc/src/new/bionic/sys/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-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
deleted file mode 100644
index 49af36f..0000000
--- a/external/vendor/libc/src/new/bionic/sys/socket.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-//! 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/bionic_libc/mod.rs b/external/vendor/libc/src/new/bionic_libc/mod.rs
new file mode 100644
index 0000000..1dd186e
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic_libc/mod.rs
@@ -0,0 +1,7 @@
+//! This directory maps to `bionic/libc/include` in the Android source.
+//!
+//! <https://cs.android.com/android/platform/superproject/main/+/main:bionic/libc/include/>
+
+pub(crate) mod pthread;
+pub(crate) mod sys;
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/bionic_libc/pthread.rs b/external/vendor/libc/src/new/bionic_libc/pthread.rs
new file mode 100644
index 0000000..4997547
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic_libc/pthread.rs
@@ -0,0 +1,42 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::linux_like::pthread::{
+ pthread_getattr_np,
+ pthread_setname_np,
+};
+pub use crate::new::common::posix::pthread::{
+ pthread_atfork,
+ pthread_attr_getguardsize,
+ pthread_attr_getinheritsched,
+ pthread_attr_getstack,
+ pthread_attr_setguardsize,
+ pthread_attr_setinheritsched,
+ pthread_attr_setstack,
+ pthread_barrier_destroy,
+ pthread_barrier_init,
+ pthread_barrier_wait,
+ pthread_barrierattr_destroy,
+ pthread_barrierattr_getpshared,
+ pthread_barrierattr_init,
+ pthread_barrierattr_setpshared,
+ pthread_condattr_getclock,
+ pthread_condattr_getpshared,
+ pthread_condattr_setclock,
+ pthread_condattr_setpshared,
+ pthread_create,
+ pthread_getcpuclockid,
+ pthread_getschedparam,
+ pthread_kill,
+ pthread_mutex_timedlock,
+ pthread_mutexattr_getpshared,
+ pthread_mutexattr_setpshared,
+ pthread_rwlockattr_getpshared,
+ pthread_rwlockattr_setpshared,
+ pthread_setschedparam,
+ pthread_sigmask,
+ pthread_spin_destroy,
+ pthread_spin_init,
+ pthread_spin_lock,
+ pthread_spin_trylock,
+ pthread_spin_unlock,
+};
diff --git a/external/vendor/libc/src/new/bionic_libc/sys/mod.rs b/external/vendor/libc/src/new/bionic_libc/sys/mod.rs
new file mode 100644
index 0000000..a882cbd
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic_libc/sys/mod.rs
@@ -0,0 +1,3 @@
+//! Directory: `sys/`
+
+pub(crate) mod socket;
diff --git a/external/vendor/libc/src/new/bionic_libc/sys/socket.rs b/external/vendor/libc/src/new/bionic_libc/sys/socket.rs
new file mode 100644
index 0000000..c4a4e78
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic_libc/sys/socket.rs
@@ -0,0 +1,51 @@
+//! Header: `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/bionic_libc/unistd.rs b/external/vendor/libc/src/new/bionic_libc/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/bionic_libc/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/common/bsd.rs b/external/vendor/libc/src/new/common/bsd.rs
new file mode 100644
index 0000000..818daf9
--- /dev/null
+++ b/external/vendor/libc/src/new/common/bsd.rs
@@ -0,0 +1 @@
+//! Interfaces common across the BSD family.
diff --git a/external/vendor/libc/src/new/common/freebsd_like.rs b/external/vendor/libc/src/new/common/freebsd_like.rs
new file mode 100644
index 0000000..f49f2c9
--- /dev/null
+++ b/external/vendor/libc/src/new/common/freebsd_like.rs
@@ -0,0 +1 @@
+//! Interfaces common in FreeBSD-derived operating systems. This includes FreeBSD and DragonFlyBSD.
diff --git a/external/vendor/libc/src/new/common/linux_like/mod.rs b/external/vendor/libc/src/new/common/linux_like/mod.rs
new file mode 100644
index 0000000..9c41fe2
--- /dev/null
+++ b/external/vendor/libc/src/new/common/linux_like/mod.rs
@@ -0,0 +1,9 @@
+//! API that primarily comes from Linux but is also used other platforms (e.g. Android).
+
+#[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "l4re",
+ target_os = "linux"
+))]
+pub(crate) mod pthread;
diff --git a/external/vendor/libc/src/new/common/linux_like/pthread.rs b/external/vendor/libc/src/new/common/linux_like/pthread.rs
new file mode 100644
index 0000000..b54d385
--- /dev/null
+++ b/external/vendor/libc/src/new/common/linux_like/pthread.rs
@@ -0,0 +1,25 @@
+use crate::prelude::*;
+
+extern "C" {
+ #[cfg(any(target_os = "linux", target_os = "l4re"))]
+ pub fn pthread_getaffinity_np(
+ thread: crate::pthread_t,
+ cpusetsize: size_t,
+ cpuset: *mut crate::cpu_set_t,
+ ) -> c_int;
+
+ pub fn pthread_getattr_np(native: crate::pthread_t, attr: *mut crate::pthread_attr_t) -> c_int;
+
+ #[cfg(target_os = "linux")]
+ pub fn pthread_getname_np(thread: crate::pthread_t, name: *mut c_char, len: size_t) -> c_int;
+
+ #[cfg(any(target_os = "linux", target_os = "l4re"))]
+ pub fn pthread_setaffinity_np(
+ thread: crate::pthread_t,
+ cpusetsize: size_t,
+ cpuset: *const crate::cpu_set_t,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "linux"))]
+ pub fn pthread_setname_np(thread: crate::pthread_t, name: *const c_char) -> c_int;
+}
diff --git a/external/vendor/libc/src/new/common/mod.rs b/external/vendor/libc/src/new/common/mod.rs
new file mode 100644
index 0000000..acb1891
--- /dev/null
+++ b/external/vendor/libc/src/new/common/mod.rs
@@ -0,0 +1,39 @@
+//! Interfaces that are common across multiple platforms
+//!
+//! We make these available everywhere but each platform must opt in to reexporting.
+//!
+//! There shouldn't be any repeated definitions or complex configuration in this module. On
+//! platforms that don't use common APIs it is fine to use `#[cfg(not(...))]`, but if a platform
+//! needs a custom definition then it should be defined in the platform-specific module.
+//!
+//! The goal is that platforms need to opt in to the definitions here, so that worst case we have
+//! an unused warning on untested platforms (rather than exposing incorrect API).
+
+#[cfg(any(
+ target_vendor = "apple",
+ target_os = "dragonfly",
+ target_os = "freebsd",
+ target_os = "netbsd",
+ target_os = "openbsd",
+))]
+pub(crate) mod bsd;
+
+#[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "l4re",
+ target_os = "linux",
+))]
+pub(crate) mod linux_like;
+
+#[cfg(any(target_os = "dragonfly", target_os = "freebsd"))]
+pub(crate) mod freebsd_like;
+
+#[cfg(any(target_os = "netbsd", target_os = "openbsd"))]
+pub(crate) mod netbsd_like;
+
+#[cfg(any(target_os = "illumos", target_os = "solaris"))]
+pub(crate) mod solarish;
+
+#[cfg(target_family = "unix")]
+pub(crate) mod posix;
diff --git a/external/vendor/libc/src/new/common/netbsd_like.rs b/external/vendor/libc/src/new/common/netbsd_like.rs
new file mode 100644
index 0000000..4267357
--- /dev/null
+++ b/external/vendor/libc/src/new/common/netbsd_like.rs
@@ -0,0 +1 @@
+//! Interfaces common in NetBSD-derived operating systems. This includes NetBSD and OpenBSD.
diff --git a/external/vendor/libc/src/new/common/posix/mod.rs b/external/vendor/libc/src/new/common/posix/mod.rs
new file mode 100644
index 0000000..44ae64a
--- /dev/null
+++ b/external/vendor/libc/src/new/common/posix/mod.rs
@@ -0,0 +1,15 @@
+//! POSIX APIs that are used by a number of platforms
+//!
+//! These can be found at: <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/contents.html>.
+
+// FIXME(pthread): eventually all platforms should use this module
+#[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "l4re",
+ target_os = "linux",
+ target_os = "qurt",
+ target_vendor = "apple",
+))]
+pub(crate) mod pthread;
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/common/posix/pthread.rs b/external/vendor/libc/src/new/common/posix/pthread.rs
new file mode 100644
index 0000000..146cd60
--- /dev/null
+++ b/external/vendor/libc/src/new/common/posix/pthread.rs
@@ -0,0 +1,322 @@
+//! Header: `pthread.h`
+//!
+//! <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html>
+
+use crate::prelude::*;
+
+extern "C" {
+ #[cfg(any(target_os = "android", target_os = "linux"))]
+ pub fn pthread_atfork(
+ prepare: Option<unsafe extern "C" fn()>,
+ parent: Option<unsafe extern "C" fn()>,
+ child: Option<unsafe extern "C" fn()>,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_attr_getguardsize(
+ attr: *const crate::pthread_attr_t,
+ guardsize: *mut size_t,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_attr_getinheritsched(
+ attr: *const crate::pthread_attr_t,
+ inheritsched: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))]
+ pub fn pthread_attr_getschedparam(
+ attr: *const crate::pthread_attr_t,
+ param: *mut crate::sched_param,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))]
+ pub fn pthread_attr_getschedpolicy(
+ attr: *const crate::pthread_attr_t,
+ policy: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re"
+ ))]
+ pub fn pthread_attr_getstack(
+ attr: *const crate::pthread_attr_t,
+ stackaddr: *mut *mut c_void,
+ stacksize: *mut size_t,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_attr_setguardsize(attr: *mut crate::pthread_attr_t, guardsize: size_t) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple"
+ ))]
+ pub fn pthread_attr_setinheritsched(
+ attr: *mut crate::pthread_attr_t,
+ inheritsched: c_int,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))]
+ pub fn pthread_attr_setschedparam(
+ attr: *mut crate::pthread_attr_t,
+ param: *const crate::sched_param,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "l4re", target_os = "linux", target_vendor = "apple"))]
+ pub fn pthread_attr_setschedpolicy(attr: *mut crate::pthread_attr_t, policy: c_int) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re"
+ ))]
+ pub fn pthread_attr_setstack(
+ attr: *mut crate::pthread_attr_t,
+ stackaddr: *mut c_void,
+ stacksize: size_t,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrier_destroy(barrier: *mut crate::pthread_barrier_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrier_init(
+ barrier: *mut crate::pthread_barrier_t,
+ attr: *const crate::pthread_barrierattr_t,
+ count: c_uint,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrier_wait(barrier: *mut crate::pthread_barrier_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrierattr_destroy(attr: *mut crate::pthread_barrierattr_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "linux"))]
+ pub fn pthread_barrierattr_getpshared(
+ attr: *const crate::pthread_barrierattr_t,
+ shared: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrierattr_init(attr: *mut crate::pthread_barrierattr_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_barrierattr_setpshared(
+ attr: *mut crate::pthread_barrierattr_t,
+ shared: c_int,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "l4re", all(target_os = "linux", not(target_env = "ohos"))))]
+ pub fn pthread_cancel(thread: crate::pthread_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux",))]
+ pub fn pthread_condattr_getclock(
+ attr: *const crate::pthread_condattr_t,
+ clock_id: *mut crate::clockid_t,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_condattr_getpshared(
+ attr: *const crate::pthread_condattr_t,
+ pshared: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "emscripten", target_os = "linux",))]
+ pub fn pthread_condattr_setclock(
+ attr: *mut crate::pthread_condattr_t,
+ clock_id: crate::clockid_t,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_condattr_setpshared(
+ attr: *mut crate::pthread_condattr_t,
+ pshared: c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "l4re",
+ target_os = "linux",
+ ))]
+ pub fn pthread_create(
+ native: *mut crate::pthread_t,
+ attr: *const crate::pthread_attr_t,
+ f: extern "C" fn(*mut c_void) -> *mut c_void,
+ value: *mut c_void,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "linux"))]
+ pub fn pthread_getcpuclockid(thread: crate::pthread_t, clk_id: *mut crate::clockid_t) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_getschedparam(
+ native: crate::pthread_t,
+ policy: *mut c_int,
+ param: *mut crate::sched_param,
+ ) -> c_int;
+
+ // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required
+ // in pthread.
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_kill(thread: crate::pthread_t, sig: c_int) -> c_int;
+
+ #[cfg(all(target_os = "linux", not(target_env = "ohos")))]
+ pub fn pthread_mutex_consistent(mutex: *mut crate::pthread_mutex_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ #[cfg_attr(gnu_time_bits64, link_name = "__pthread_mutex_timedlock64")]
+ #[cfg_attr(musl32_time64, link_name = "__pthread_mutex_timedlock_time64")]
+ pub fn pthread_mutex_timedlock(
+ lock: *mut crate::pthread_mutex_t,
+ abstime: *const crate::timespec,
+ ) -> c_int;
+
+ #[cfg(target_os = "linux")]
+ pub fn pthread_mutexattr_getprotocol(
+ attr: *const crate::pthread_mutexattr_t,
+ protocol: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_mutexattr_getpshared(
+ attr: *const crate::pthread_mutexattr_t,
+ pshared: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(all(target_os = "linux", not(target_env = "ohos")))]
+ pub fn pthread_mutexattr_getrobust(
+ attr: *const crate::pthread_mutexattr_t,
+ robustness: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(target_os = "linux")]
+ pub fn pthread_mutexattr_setprotocol(
+ attr: *mut crate::pthread_mutexattr_t,
+ protocol: c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_mutexattr_setpshared(
+ attr: *mut crate::pthread_mutexattr_t,
+ pshared: c_int,
+ ) -> c_int;
+
+ #[cfg(all(target_os = "linux", not(target_env = "ohos")))]
+ pub fn pthread_mutexattr_setrobust(
+ attr: *mut crate::pthread_mutexattr_t,
+ robustness: c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_rwlockattr_getpshared(
+ attr: *const crate::pthread_rwlockattr_t,
+ val: *mut c_int,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "linux",
+ target_os = "l4re",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_rwlockattr_setpshared(
+ attr: *mut crate::pthread_rwlockattr_t,
+ val: c_int,
+ ) -> c_int;
+
+ // FIXME(1.0): These shoul be combined to the version that takes an optional unsafe function.
+ #[cfg(any(target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_once(control: *mut crate::pthread_once_t, routine: extern "C" fn()) -> c_int;
+ #[cfg(target_vendor = "apple")]
+ pub fn pthread_once(
+ once_control: *mut crate::pthread_once_t,
+ init_routine: Option<unsafe extern "C" fn()>,
+ ) -> c_int;
+
+ #[cfg(any(
+ target_os = "android",
+ target_os = "l4re",
+ target_os = "linux",
+ target_vendor = "apple",
+ ))]
+ pub fn pthread_setschedparam(
+ native: crate::pthread_t,
+ policy: c_int,
+ param: *const crate::sched_param,
+ ) -> c_int;
+
+ #[cfg(target_os = "linux")]
+ pub fn pthread_setschedprio(native: crate::pthread_t, priority: c_int) -> c_int;
+
+ // FIXME(reorg): In recent POSIX versions, this is a signal.h function and not required
+ // in pthread.
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_sigmask(
+ how: c_int,
+ set: *const crate::sigset_t,
+ oldset: *mut crate::sigset_t,
+ ) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_spin_destroy(lock: *mut crate::pthread_spinlock_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_spin_init(lock: *mut crate::pthread_spinlock_t, pshared: c_int) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_spin_lock(lock: *mut crate::pthread_spinlock_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_spin_trylock(lock: *mut crate::pthread_spinlock_t) -> c_int;
+
+ #[cfg(any(target_os = "android", target_os = "l4re", target_os = "linux"))]
+ pub fn pthread_spin_unlock(lock: *mut crate::pthread_spinlock_t) -> c_int;
+}
diff --git a/external/vendor/libc/src/new/common/posix/unistd.rs b/external/vendor/libc/src/new/common/posix/unistd.rs
new file mode 100644
index 0000000..0c02cba
--- /dev/null
+++ b/external/vendor/libc/src/new/common/posix/unistd.rs
@@ -0,0 +1,9 @@
+//! Header: `unistd.h`
+//!
+//! <https://pubs.opengroup.org/onlinepubs/007904975/basedefs/unistd.h.html>
+
+use crate::prelude::*;
+
+pub const STDIN_FILENO: c_int = 0;
+pub const STDOUT_FILENO: c_int = 1;
+pub const STDERR_FILENO: c_int = 2;
diff --git a/external/vendor/libc/src/new/common/solarish.rs b/external/vendor/libc/src/new/common/solarish.rs
new file mode 100644
index 0000000..f966114
--- /dev/null
+++ b/external/vendor/libc/src/new/common/solarish.rs
@@ -0,0 +1 @@
+//! Interfaces common in solaris-derived operating systems. This includes Solaris and Illumos.
diff --git a/external/vendor/libc/src/new/cygwin/mod.rs b/external/vendor/libc/src/new/cygwin/mod.rs
new file mode 100644
index 0000000..356ae58
--- /dev/null
+++ b/external/vendor/libc/src/new/cygwin/mod.rs
@@ -0,0 +1,5 @@
+//! Cygwin libc.
+//!
+//! * Headers: <https://github.com/cygwin/cygwin/tree/main/winsup/cygwin/include>
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/cygwin/unistd.rs b/external/vendor/libc/src/new/cygwin/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/cygwin/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/dragonfly/mod.rs b/external/vendor/libc/src/new/dragonfly/mod.rs
new file mode 100644
index 0000000..4a1b2c4
--- /dev/null
+++ b/external/vendor/libc/src/new/dragonfly/mod.rs
@@ -0,0 +1,6 @@
+//! DragonFly BSD libc.
+//!
+//! * Headers: <https://github.com/DragonFlyBSD/DragonFlyBSD>
+//! * Manual pages: <https://leaf.dragonflybsd.org/cgi/web-man>
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/dragonfly/unistd.rs b/external/vendor/libc/src/new/dragonfly/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/dragonfly/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/emscripten/mod.rs b/external/vendor/libc/src/new/emscripten/mod.rs
new file mode 100644
index 0000000..9b74464
--- /dev/null
+++ b/external/vendor/libc/src/new/emscripten/mod.rs
@@ -0,0 +1,7 @@
+//! Emscripten libc.
+//!
+//! * Headers: <https://github.com/emscripten-core/emscripten/tree/main/system/lib/libc>
+
+pub(crate) mod pthread;
+pub(crate) mod sched;
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/emscripten/pthread.rs b/external/vendor/libc/src/new/emscripten/pthread.rs
new file mode 100644
index 0000000..21982b7
--- /dev/null
+++ b/external/vendor/libc/src/new/emscripten/pthread.rs
@@ -0,0 +1,14 @@
+//! Header: `pthread.h`
+
+pub use crate::new::common::linux_like::pthread::pthread_getattr_np;
+pub use crate::new::common::posix::pthread::{
+ pthread_attr_getstack,
+ pthread_attr_setstack,
+ pthread_condattr_getclock,
+ pthread_condattr_setclock,
+ pthread_condattr_setpshared,
+ pthread_create,
+ pthread_mutexattr_setpshared,
+ pthread_rwlockattr_getpshared,
+ pthread_rwlockattr_setpshared,
+};
diff --git a/external/vendor/libc/src/new/emscripten/sched.rs b/external/vendor/libc/src/new/emscripten/sched.rs
new file mode 100644
index 0000000..3bf854e
--- /dev/null
+++ b/external/vendor/libc/src/new/emscripten/sched.rs
@@ -0,0 +1,38 @@
+use crate::prelude::*;
+
+cfg_if! {
+ if #[cfg(musl_v1_2_3)] {
+ s! {
+ struct __c_anon_sched_param__reserved2 {
+ __reserved1: crate::time_t,
+ __reserved2: c_long,
+ }
+
+ pub struct sched_param {
+ pub sched_priority: c_int,
+
+ __reserved1: Padding<c_int>,
+ #[cfg(musl32_time64)]
+ __reserved2: Padding<[c_long; 4]>,
+ #[cfg(not(musl32_time64))]
+ __reserved2: Padding<[__c_anon_sched_param__reserved2; 2]>,
+ __reserved3: Padding<c_int>,
+ }
+ }
+ } else {
+ s! {
+ pub struct sched_param {
+ pub sched_priority: c_int,
+
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_low_priority: c_int,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_repl_period: crate::timespec,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_init_budget: crate::timespec,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_max_repl: c_int,
+ }
+ }
+ }
+}
diff --git a/external/vendor/libc/src/new/emscripten/unistd.rs b/external/vendor/libc/src/new/emscripten/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/emscripten/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/espidf/mod.rs b/external/vendor/libc/src/new/espidf/mod.rs
new file mode 100644
index 0000000..061ea6e
--- /dev/null
+++ b/external/vendor/libc/src/new/espidf/mod.rs
@@ -0,0 +1,2 @@
+//! Expressif libc.
+// FIXME(espidf): link to headers needed.
diff --git a/external/vendor/libc/src/new/freebsd/mod.rs b/external/vendor/libc/src/new/freebsd/mod.rs
new file mode 100644
index 0000000..87c2e48
--- /dev/null
+++ b/external/vendor/libc/src/new/freebsd/mod.rs
@@ -0,0 +1,6 @@
+//! FreeBSD libc.
+//!
+//! * Headers: <https://github.com/freebsd/freebsd-src/blob/main/sys/riscv/include/ucontext.h>
+//! * Symbol map: <https://github.com/freebsd/freebsd-src/blob/main/lib/libc/gen/Symbol.map>
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/freebsd/unistd.rs b/external/vendor/libc/src/new/freebsd/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/freebsd/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/fuchsia/mod.rs b/external/vendor/libc/src/new/fuchsia/mod.rs
new file mode 100644
index 0000000..b3a9083
--- /dev/null
+++ b/external/vendor/libc/src/new/fuchsia/mod.rs
@@ -0,0 +1,4 @@
+//! Fuschia libc.
+// FIXME(fuchsia): link to headers needed.
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/fuchsia/unistd.rs b/external/vendor/libc/src/new/fuchsia/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/fuchsia/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/glibc/mod.rs b/external/vendor/libc/src/new/glibc/mod.rs
new file mode 100644
index 0000000..71d979b
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/mod.rs
@@ -0,0 +1,31 @@
+//! GNU libc.
+//!
+//! * Headers: <https://sourceware.org/git/?p=glibc.git> (official)
+//! * Headers: <https://github.com/bminor/glibc> (mirror)
+//!
+//! This module structure is modeled after glibc's source tree. Its build system selects headers
+//! from different locations based on the platform, which we mimic here with reexports.
+
+/// Source directory: `posix/`
+///
+/// <https://github.com/bminor/glibc/tree/master/posix>
+mod posix {
+ pub(crate) mod unistd;
+}
+
+/// Source directory: `sysdeps/`
+///
+/// <https://github.com/bminor/glibc/tree/master/sysdeps>
+mod sysdeps {
+ // FIXME(pthread): eventually all platforms should use this module
+ #[cfg(target_os = "linux")]
+ pub(crate) mod nptl;
+ pub(crate) mod unix;
+}
+
+pub(crate) use posix::*;
+// FIXME(pthread): eventually all platforms should use this module
+#[cfg(target_os = "linux")]
+pub(crate) use sysdeps::nptl::*;
+#[cfg(target_os = "linux")]
+pub(crate) use sysdeps::unix::linux::*;
diff --git a/external/vendor/libc/src/new/glibc/posix/unistd.rs b/external/vendor/libc/src/new/glibc/posix/unistd.rs
new file mode 100644
index 0000000..907066c
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/posix/unistd.rs
@@ -0,0 +1,9 @@
+//! Header: `unistd.h`
+//!
+//! <https://github.com/bminor/glibc/blob/master/posix/unistd.h>
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/glibc/sysdeps/nptl/mod.rs b/external/vendor/libc/src/new/glibc/sysdeps/nptl/mod.rs
new file mode 100644
index 0000000..18e82e4
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/sysdeps/nptl/mod.rs
@@ -0,0 +1,7 @@
+//! Source directory: `sysdeps/nptl/`o
+//!
+//! Native POSIX threading library.
+//!
+//! <https://github.com/bminor/glibc/tree/master/sysdeps/nptl>
+
+pub(crate) mod pthread;
diff --git a/external/vendor/libc/src/new/glibc/sysdeps/nptl/pthread.rs b/external/vendor/libc/src/new/glibc/sysdeps/nptl/pthread.rs
new file mode 100644
index 0000000..27b1728
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/sysdeps/nptl/pthread.rs
@@ -0,0 +1,59 @@
+//! Source header: `sysdeps/nptl/pthread.h`
+//!
+//! <https://github.com/bminor/glibc/blob/master/sysdeps/nptl/pthread.h>
+
+pub use crate::new::common::linux_like::pthread::{
+ pthread_getaffinity_np,
+ pthread_getattr_np,
+ pthread_getname_np,
+ pthread_setaffinity_np,
+ pthread_setname_np,
+};
+pub use crate::new::common::posix::pthread::{
+ pthread_atfork,
+ pthread_attr_getguardsize,
+ pthread_attr_getinheritsched,
+ pthread_attr_getschedparam,
+ pthread_attr_getschedpolicy,
+ pthread_attr_getstack,
+ pthread_attr_setguardsize,
+ pthread_attr_setinheritsched,
+ pthread_attr_setschedparam,
+ pthread_attr_setschedpolicy,
+ pthread_attr_setstack,
+ pthread_barrier_destroy,
+ pthread_barrier_init,
+ pthread_barrier_wait,
+ pthread_barrierattr_destroy,
+ pthread_barrierattr_getpshared,
+ pthread_barrierattr_init,
+ pthread_barrierattr_setpshared,
+ pthread_cancel,
+ pthread_condattr_getclock,
+ pthread_condattr_getpshared,
+ pthread_condattr_setclock,
+ pthread_condattr_setpshared,
+ pthread_create,
+ pthread_getcpuclockid,
+ pthread_getschedparam,
+ pthread_kill,
+ pthread_mutex_consistent,
+ pthread_mutex_timedlock,
+ pthread_mutexattr_getprotocol,
+ pthread_mutexattr_getpshared,
+ pthread_mutexattr_getrobust,
+ pthread_mutexattr_setprotocol,
+ pthread_mutexattr_setpshared,
+ pthread_mutexattr_setrobust,
+ pthread_once,
+ pthread_rwlockattr_getpshared,
+ pthread_rwlockattr_setpshared,
+ pthread_setschedparam,
+ pthread_setschedprio,
+ pthread_sigmask,
+ pthread_spin_destroy,
+ pthread_spin_init,
+ pthread_spin_lock,
+ pthread_spin_trylock,
+ pthread_spin_unlock,
+};
diff --git a/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/mod.rs b/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/mod.rs
new file mode 100644
index 0000000..0ecee59
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/mod.rs
@@ -0,0 +1,10 @@
+//! Source directory: `sysdeps/unix/sysv/linux` (the `sysv` is flattened).
+//!
+//! <https://github.com/bminor/glibc/tree/master/sysdeps/unix/sysv/linux>
+
+/// Directory: `net/`
+///
+/// Source directory: `sysdeps/unix/sysv/linux/net`
+pub(crate) mod net {
+ pub(crate) mod route;
+}
diff --git a/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/net/route.rs b/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/net/route.rs
new file mode 100644
index 0000000..2851451
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/sysdeps/unix/linux/net/route.rs
@@ -0,0 +1,30 @@
+//! Header: `net/route.h`
+//!
+//! Source header: `sysdeps/unix/sysv/linux/net/route.h`
+//! <https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/net/route.h>
+
+use crate::prelude::*;
+
+s! {
+ pub struct rtentry {
+ pub rt_pad1: c_ulong,
+ pub rt_dst: crate::sockaddr,
+ pub rt_gateway: crate::sockaddr,
+ pub rt_genmask: crate::sockaddr,
+ pub rt_flags: c_ushort,
+ pub rt_pad2: c_short,
+ pub rt_pad3: c_ulong,
+ pub rt_tos: c_uchar,
+ pub rt_class: c_uchar,
+ // FIXME(1.0): private padding fields
+ #[cfg(target_pointer_width = "64")]
+ pub rt_pad4: [c_short; 3usize],
+ #[cfg(not(target_pointer_width = "64"))]
+ pub rt_pad4: c_short,
+ pub rt_metric: c_short,
+ pub rt_dev: *mut c_char,
+ pub rt_mtu: c_ulong,
+ pub rt_window: c_ulong,
+ pub rt_irtt: c_ushort,
+ }
+}
diff --git a/external/vendor/libc/src/new/glibc/sysdeps/unix/mod.rs b/external/vendor/libc/src/new/glibc/sysdeps/unix/mod.rs
new file mode 100644
index 0000000..55a895d
--- /dev/null
+++ b/external/vendor/libc/src/new/glibc/sysdeps/unix/mod.rs
@@ -0,0 +1,6 @@
+//! Source directory: `sysdeps/unix/`
+//!
+//! <https://github.com/bminor/glibc/tree/master/sysdeps/unix>
+
+#[cfg(target_os = "linux")]
+pub(crate) mod linux;
diff --git a/external/vendor/libc/src/new/haiku/mod.rs b/external/vendor/libc/src/new/haiku/mod.rs
new file mode 100644
index 0000000..a565afe
--- /dev/null
+++ b/external/vendor/libc/src/new/haiku/mod.rs
@@ -0,0 +1,4 @@
+//! Haiku OS libc.
+// FIXME(haiku): link to headers needed.
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/haiku/unistd.rs b/external/vendor/libc/src/new/haiku/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/haiku/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/hermit_abi/mod.rs b/external/vendor/libc/src/new/hermit_abi/mod.rs
new file mode 100644
index 0000000..65f59fe
--- /dev/null
+++ b/external/vendor/libc/src/new/hermit_abi/mod.rs
@@ -0,0 +1,3 @@
+//! Hermit kernel libc.
+//!
+//! * Headers: <https://github.com/hermit-os/hermit-rs/tree/main/hermit-abi>
diff --git a/external/vendor/libc/src/new/horizon/mod.rs b/external/vendor/libc/src/new/horizon/mod.rs
new file mode 100644
index 0000000..338e9f0
--- /dev/null
+++ b/external/vendor/libc/src/new/horizon/mod.rs
@@ -0,0 +1,2 @@
+//! Switch libc.
+// FIXME(horizon): link to headers or manpages needed.
diff --git a/external/vendor/libc/src/new/hurd/mod.rs b/external/vendor/libc/src/new/hurd/mod.rs
new file mode 100644
index 0000000..12198d5
--- /dev/null
+++ b/external/vendor/libc/src/new/hurd/mod.rs
@@ -0,0 +1,2 @@
+//! GNU Hurd libc.
+// FIXME(hurd): link to headers needed.
diff --git a/external/vendor/libc/src/new/illumos/mod.rs b/external/vendor/libc/src/new/illumos/mod.rs
new file mode 100644
index 0000000..83d15da
--- /dev/null
+++ b/external/vendor/libc/src/new/illumos/mod.rs
@@ -0,0 +1,4 @@
+//! Illumos libc.
+// FIXME(illumos): link to headers needed.
+
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/illumos/unistd.rs b/external/vendor/libc/src/new/illumos/unistd.rs
new file mode 100644
index 0000000..8d55ee5
--- /dev/null
+++ b/external/vendor/libc/src/new/illumos/unistd.rs
@@ -0,0 +1,7 @@
+//! Header: `unistd.h`
+
+pub use crate::new::common::posix::unistd::{
+ STDERR_FILENO,
+ STDIN_FILENO,
+ STDOUT_FILENO,
+};
diff --git a/external/vendor/libc/src/new/l4re/mod.rs b/external/vendor/libc/src/new/l4re/mod.rs
new file mode 100644
index 0000000..cbf725f
--- /dev/null
+++ b/external/vendor/libc/src/new/l4re/mod.rs
@@ -0,0 +1,3 @@
+//! L4re.
+//!
+//! * Headers: <https://github.com/kernkonzept/l4re-core/tree/master/libc/uclibc-ng>
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can.rs b/external/vendor/libc/src/new/linux_uapi/linux/can.rs
index b9479a6..5414897 100644
--- a/external/vendor/libc/src/new/linux_uapi/linux/can.rs
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can.rs
@@ -1,11 +1,10 @@
//! Header: `uapi/linux/can.h`
+pub(crate) mod bcm;
+pub(crate) mod error;
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;
@@ -43,7 +42,7 @@ s! {
pub can_id: canid_t,
// FIXME(1.0): this field was renamed to `len` in Linux 5.11
pub can_dlc: u8,
- __pad: u8,
+ __pad: Padding<u8>,
__res0: u8,
pub len8_dlc: u8,
pub data: [u8; CAN_MAX_DLEN],
@@ -70,7 +69,6 @@ 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,
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can/bcm.rs b/external/vendor/libc/src/new/linux_uapi/linux/can/bcm.rs
new file mode 100644
index 0000000..853f85f
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can/bcm.rs
@@ -0,0 +1,52 @@
+//! Header: `linux/can/bcm.h`
+
+pub use crate::linux::can::*;
+
+s! {
+ pub struct bcm_timeval {
+ pub tv_sec: c_long,
+ pub tv_usec: c_long,
+ }
+
+ pub struct bcm_msg_head {
+ pub opcode: u32,
+ pub flags: u32,
+ pub count: u32,
+ pub ival1: bcm_timeval,
+ pub ival2: bcm_timeval,
+ pub can_id: canid_t,
+ pub nframes: u32,
+ pub frames: [can_frame; 0],
+ }
+}
+
+c_enum! {
+ #[repr(u32)]
+ pub enum #anon {
+ pub TX_SETUP = 1,
+ pub TX_DELETE,
+ pub TX_READ,
+ pub TX_SEND,
+ pub RX_SETUP,
+ pub RX_DELETE,
+ pub RX_READ,
+ pub TX_STATUS,
+ pub TX_EXPIRED,
+ pub RX_STATUS,
+ pub RX_TIMEOUT,
+ pub RX_CHANGED,
+ }
+}
+
+pub const SETTIMER: u32 = 0x0001;
+pub const STARTTIMER: u32 = 0x0002;
+pub const TX_COUNTEVT: u32 = 0x0004;
+pub const TX_ANNOUNCE: u32 = 0x0008;
+pub const TX_CP_CAN_ID: u32 = 0x0010;
+pub const RX_FILTER_ID: u32 = 0x0020;
+pub const RX_CHECK_DLC: u32 = 0x0040;
+pub const RX_NO_AUTOTIMER: u32 = 0x0080;
+pub const RX_ANNOUNCE_RESUME: u32 = 0x0100;
+pub const TX_RESET_MULTI_IDX: u32 = 0x0200;
+pub const RX_RTR_FRAME: u32 = 0x0400;
+pub const CAN_FD_FRAME: u32 = 0x0800;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/can/error.rs b/external/vendor/libc/src/new/linux_uapi/linux/can/error.rs
new file mode 100644
index 0000000..1b298ca
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can/error.rs
@@ -0,0 +1,73 @@
+//! Header: `linux/can/error.h`
+
+pub use crate::linux::can::*;
+
+pub const CAN_ERR_DLC: c_int = 8;
+
+pub const CAN_ERR_TX_TIMEOUT: c_uint = 0x00000001;
+pub const CAN_ERR_LOSTARB: c_uint = 0x00000002;
+pub const CAN_ERR_CRTL: c_uint = 0x00000004;
+pub const CAN_ERR_PROT: c_uint = 0x00000008;
+pub const CAN_ERR_TRX: c_uint = 0x00000010;
+pub const CAN_ERR_ACK: c_uint = 0x00000020;
+pub const CAN_ERR_BUSOFF: c_uint = 0x00000040;
+pub const CAN_ERR_BUSERROR: c_uint = 0x00000080;
+pub const CAN_ERR_RESTARTED: c_uint = 0x00000100;
+pub const CAN_ERR_CNT: c_uint = 0x00000200;
+
+pub const CAN_ERR_LOSTARB_UNSPEC: c_int = 0x00;
+
+pub const CAN_ERR_CRTL_UNSPEC: c_int = 0x00;
+pub const CAN_ERR_CRTL_RX_OVERFLOW: c_int = 0x01;
+pub const CAN_ERR_CRTL_TX_OVERFLOW: c_int = 0x02;
+pub const CAN_ERR_CRTL_RX_WARNING: c_int = 0x04;
+pub const CAN_ERR_CRTL_TX_WARNING: c_int = 0x08;
+pub const CAN_ERR_CRTL_RX_PASSIVE: c_int = 0x10;
+pub const CAN_ERR_CRTL_TX_PASSIVE: c_int = 0x20;
+pub const CAN_ERR_CRTL_ACTIVE: c_int = 0x40;
+
+pub const CAN_ERR_PROT_UNSPEC: c_int = 0x00;
+pub const CAN_ERR_PROT_BIT: c_int = 0x01;
+pub const CAN_ERR_PROT_FORM: c_int = 0x02;
+pub const CAN_ERR_PROT_STUFF: c_int = 0x04;
+pub const CAN_ERR_PROT_BIT0: c_int = 0x08;
+pub const CAN_ERR_PROT_BIT1: c_int = 0x10;
+pub const CAN_ERR_PROT_OVERLOAD: c_int = 0x20;
+pub const CAN_ERR_PROT_ACTIVE: c_int = 0x40;
+pub const CAN_ERR_PROT_TX: c_int = 0x80;
+
+pub const CAN_ERR_PROT_LOC_UNSPEC: c_int = 0x00;
+pub const CAN_ERR_PROT_LOC_SOF: c_int = 0x03;
+pub const CAN_ERR_PROT_LOC_ID28_21: c_int = 0x02;
+pub const CAN_ERR_PROT_LOC_ID20_18: c_int = 0x06;
+pub const CAN_ERR_PROT_LOC_SRTR: c_int = 0x04;
+pub const CAN_ERR_PROT_LOC_IDE: c_int = 0x05;
+pub const CAN_ERR_PROT_LOC_ID17_13: c_int = 0x07;
+pub const CAN_ERR_PROT_LOC_ID12_05: c_int = 0x0F;
+pub const CAN_ERR_PROT_LOC_ID04_00: c_int = 0x0E;
+pub const CAN_ERR_PROT_LOC_RTR: c_int = 0x0C;
+pub const CAN_ERR_PROT_LOC_RES1: c_int = 0x0D;
+pub const CAN_ERR_PROT_LOC_RES0: c_int = 0x09;
+pub const CAN_ERR_PROT_LOC_DLC: c_int = 0x0B;
+pub const CAN_ERR_PROT_LOC_DATA: c_int = 0x0A;
+pub const CAN_ERR_PROT_LOC_CRC_SEQ: c_int = 0x08;
+pub const CAN_ERR_PROT_LOC_CRC_DEL: c_int = 0x18;
+pub const CAN_ERR_PROT_LOC_ACK: c_int = 0x19;
+pub const CAN_ERR_PROT_LOC_ACK_DEL: c_int = 0x1B;
+pub const CAN_ERR_PROT_LOC_EOF: c_int = 0x1A;
+pub const CAN_ERR_PROT_LOC_INTERM: c_int = 0x12;
+
+pub const CAN_ERR_TRX_UNSPEC: c_int = 0x00;
+pub const CAN_ERR_TRX_CANH_NO_WIRE: c_int = 0x04;
+pub const CAN_ERR_TRX_CANH_SHORT_TO_BAT: c_int = 0x05;
+pub const CAN_ERR_TRX_CANH_SHORT_TO_VCC: c_int = 0x06;
+pub const CAN_ERR_TRX_CANH_SHORT_TO_GND: c_int = 0x07;
+pub const CAN_ERR_TRX_CANL_NO_WIRE: c_int = 0x40;
+pub const CAN_ERR_TRX_CANL_SHORT_TO_BAT: c_int = 0x50;
+pub const CAN_ERR_TRX_CANL_SHORT_TO_VCC: c_int = 0x60;
+pub const CAN_ERR_TRX_CANL_SHORT_TO_GND: c_int = 0x70;
+pub const CAN_ERR_TRX_CANL_SHORT_TO_CANH: c_int = 0x80;
+
+pub const CAN_ERROR_WARNING_THRESHOLD: c_int = 96;
+pub const CAN_ERROR_PASSIVE_THRESHOLD: c_int = 128;
+pub const CAN_BUS_OFF_THRESHOLD: c_int = 256;
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
index 1f92a13..470334b 100644
--- a/external/vendor/libc/src/new/linux_uapi/linux/can/raw.rs
+++ b/external/vendor/libc/src/new/linux_uapi/linux/can/raw.rs
@@ -1,4 +1,4 @@
-//! `linux/can/raw.h`
+//! Header: `linux/can/raw.h`
pub use crate::linux::can::*;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/keyctl.rs b/external/vendor/libc/src/new/linux_uapi/linux/keyctl.rs
new file mode 100644
index 0000000..cc6527a
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/keyctl.rs
@@ -0,0 +1,69 @@
+//! Header: `linux/keyctl.h`
+
+pub const KEY_SPEC_THREAD_KEYRING: i32 = -1;
+pub const KEY_SPEC_PROCESS_KEYRING: i32 = -2;
+pub const KEY_SPEC_SESSION_KEYRING: i32 = -3;
+pub const KEY_SPEC_USER_KEYRING: i32 = -4;
+pub const KEY_SPEC_USER_SESSION_KEYRING: i32 = -5;
+pub const KEY_SPEC_GROUP_KEYRING: i32 = -6;
+pub const KEY_SPEC_REQKEY_AUTH_KEY: i32 = -7;
+pub const KEY_SPEC_REQUESTOR_KEYRING: i32 = -8;
+
+pub const KEY_REQKEY_DEFL_NO_CHANGE: i32 = -1;
+pub const KEY_REQKEY_DEFL_DEFAULT: i32 = 0;
+pub const KEY_REQKEY_DEFL_THREAD_KEYRING: i32 = 1;
+pub const KEY_REQKEY_DEFL_PROCESS_KEYRING: i32 = 2;
+pub const KEY_REQKEY_DEFL_SESSION_KEYRING: i32 = 3;
+pub const KEY_REQKEY_DEFL_USER_KEYRING: i32 = 4;
+pub const KEY_REQKEY_DEFL_USER_SESSION_KEYRING: i32 = 5;
+pub const KEY_REQKEY_DEFL_GROUP_KEYRING: i32 = 6;
+pub const KEY_REQKEY_DEFL_REQUESTOR_KEYRING: i32 = 7;
+
+pub const KEYCTL_GET_KEYRING_ID: u32 = 0;
+pub const KEYCTL_JOIN_SESSION_KEYRING: u32 = 1;
+pub const KEYCTL_UPDATE: u32 = 2;
+pub const KEYCTL_REVOKE: u32 = 3;
+pub const KEYCTL_CHOWN: u32 = 4;
+pub const KEYCTL_SETPERM: u32 = 5;
+pub const KEYCTL_DESCRIBE: u32 = 6;
+pub const KEYCTL_CLEAR: u32 = 7;
+pub const KEYCTL_LINK: u32 = 8;
+pub const KEYCTL_UNLINK: u32 = 9;
+pub const KEYCTL_SEARCH: u32 = 10;
+pub const KEYCTL_READ: u32 = 11;
+pub const KEYCTL_INSTANTIATE: u32 = 12;
+pub const KEYCTL_NEGATE: u32 = 13;
+pub const KEYCTL_SET_REQKEY_KEYRING: u32 = 14;
+pub const KEYCTL_SET_TIMEOUT: u32 = 15;
+pub const KEYCTL_ASSUME_AUTHORITY: u32 = 16;
+pub const KEYCTL_GET_SECURITY: u32 = 17;
+pub const KEYCTL_SESSION_TO_PARENT: u32 = 18;
+pub const KEYCTL_REJECT: u32 = 19;
+pub const KEYCTL_INSTANTIATE_IOV: u32 = 20;
+pub const KEYCTL_INVALIDATE: u32 = 21;
+pub const KEYCTL_GET_PERSISTENT: u32 = 22;
+pub const KEYCTL_DH_COMPUTE: u32 = 23;
+pub const KEYCTL_PKEY_QUERY: u32 = 24;
+pub const KEYCTL_PKEY_ENCRYPT: u32 = 25;
+pub const KEYCTL_PKEY_DECRYPT: u32 = 26;
+pub const KEYCTL_PKEY_SIGN: u32 = 27;
+pub const KEYCTL_PKEY_VERIFY: u32 = 28;
+pub const KEYCTL_RESTRICT_KEYRING: u32 = 29;
+pub const KEYCTL_MOVE: u32 = 30;
+pub const KEYCTL_CAPABILITIES: u32 = 31;
+
+pub const KEYCTL_SUPPORTS_ENCRYPT: u32 = 0x01;
+pub const KEYCTL_SUPPORTS_DECRYPT: u32 = 0x02;
+pub const KEYCTL_SUPPORTS_SIGN: u32 = 0x04;
+pub const KEYCTL_SUPPORTS_VERIFY: u32 = 0x08;
+
+pub const KEYCTL_CAPS0_CAPABILITIES: u32 = 0x01;
+pub const KEYCTL_CAPS0_PERSISTENT_KEYRINGS: u32 = 0x02;
+pub const KEYCTL_CAPS0_DIFFIE_HELLMAN: u32 = 0x04;
+pub const KEYCTL_CAPS0_PUBLIC_KEY: u32 = 0x08;
+pub const KEYCTL_CAPS0_BIG_KEY: u32 = 0x10;
+pub const KEYCTL_CAPS0_INVALIDATE: u32 = 0x20;
+pub const KEYCTL_CAPS0_RESTRICT_KEYRING: u32 = 0x40;
+pub const KEYCTL_CAPS0_MOVE: u32 = 0x80;
+pub const KEYCTL_CAPS1_NS_KEYRING_NAME: u32 = 0x01;
+pub const KEYCTL_CAPS1_NS_KEY_TAG: u32 = 0x02;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/membarrier.rs b/external/vendor/libc/src/new/linux_uapi/linux/membarrier.rs
new file mode 100644
index 0000000..4446202
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/membarrier.rs
@@ -0,0 +1,20 @@
+//! Header: `uapi/linux/membarrier.h`
+
+use crate::prelude::*;
+
+c_enum! {
+ // FIXME(1.0): incorrect repr signedness, this should be removed in a breaking change.
+ #[repr(c_int)]
+ pub enum membarrier_cmd {
+ pub MEMBARRIER_CMD_QUERY = 0,
+ pub MEMBARRIER_CMD_GLOBAL = 1 << 0,
+ pub MEMBARRIER_CMD_GLOBAL_EXPEDITED = 1 << 1,
+ pub MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED = 1 << 2,
+ pub MEMBARRIER_CMD_PRIVATE_EXPEDITED = 1 << 3,
+ pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED = 1 << 4,
+ pub MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE = 1 << 5,
+ pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE = 1 << 6,
+ pub MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ = 1 << 7,
+ pub MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ = 1 << 8,
+ }
+}
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/mod.rs b/external/vendor/libc/src/new/linux_uapi/linux/mod.rs
index 4a9c04d..09e2c3e 100644
--- a/external/vendor/libc/src/new/linux_uapi/linux/mod.rs
+++ b/external/vendor/libc/src/new/linux_uapi/linux/mod.rs
@@ -1,4 +1,9 @@
-//! The `linux` directory within `include/uapi` in the Linux source tree.
+//! Directory: `linux/`
+//!
+//! <https://github.com/torvalds/linux/tree/master/include/uapi/linux>
pub(crate) mod can;
-pub use can::*;
+pub(crate) mod keyctl;
+pub(crate) mod membarrier;
+pub(crate) mod netlink;
+pub(crate) mod pidfd;
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/netlink.rs b/external/vendor/libc/src/new/linux_uapi/linux/netlink.rs
new file mode 100644
index 0000000..03e18d7
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/netlink.rs
@@ -0,0 +1,136 @@
+//! Header: `uapi/linux/netlink.h`
+
+use crate::prelude::*;
+
+pub const NETLINK_ROUTE: c_int = 0;
+pub const NETLINK_UNUSED: c_int = 1;
+pub const NETLINK_USERSOCK: c_int = 2;
+pub const NETLINK_FIREWALL: c_int = 3;
+pub const NETLINK_SOCK_DIAG: c_int = 4;
+pub const NETLINK_NFLOG: c_int = 5;
+pub const NETLINK_XFRM: c_int = 6;
+pub const NETLINK_SELINUX: c_int = 7;
+pub const NETLINK_ISCSI: c_int = 8;
+pub const NETLINK_AUDIT: c_int = 9;
+pub const NETLINK_FIB_LOOKUP: c_int = 10;
+pub const NETLINK_CONNECTOR: c_int = 11;
+pub const NETLINK_NETFILTER: c_int = 12;
+pub const NETLINK_IP6_FW: c_int = 13;
+pub const NETLINK_DNRTMSG: c_int = 14;
+pub const NETLINK_KOBJECT_UEVENT: c_int = 15;
+pub const NETLINK_GENERIC: c_int = 16;
+pub const NETLINK_SCSITRANSPORT: c_int = 18;
+pub const NETLINK_ECRYPTFS: c_int = 19;
+pub const NETLINK_RDMA: c_int = 20;
+pub const NETLINK_CRYPTO: c_int = 21;
+
+pub const NETLINK_INET_DIAG: c_int = NETLINK_SOCK_DIAG;
+
+pub const MAX_LINKS: c_int = 32;
+
+s! {
+ pub struct sockaddr_nl {
+ pub nl_family: crate::sa_family_t,
+ nl_pad: Padding<c_ushort>,
+ pub nl_pid: u32,
+ pub nl_groups: u32,
+ }
+
+ pub struct nlmsghdr {
+ pub nlmsg_len: u32,
+ pub nlmsg_type: u16,
+ pub nlmsg_flags: u16,
+ pub nlmsg_seq: u32,
+ pub nlmsg_pid: u32,
+ }
+}
+
+pub const NLM_F_REQUEST: c_int = 1;
+pub const NLM_F_MULTI: c_int = 2;
+pub const NLM_F_ACK: c_int = 4;
+pub const NLM_F_ECHO: c_int = 8;
+pub const NLM_F_DUMP_INTR: c_int = 16;
+pub const NLM_F_DUMP_FILTERED: c_int = 32;
+
+pub const NLM_F_ROOT: c_int = 0x100;
+pub const NLM_F_MATCH: c_int = 0x200;
+pub const NLM_F_ATOMIC: c_int = 0x400;
+pub const NLM_F_DUMP: c_int = NLM_F_ROOT | NLM_F_MATCH;
+
+pub const NLM_F_REPLACE: c_int = 0x100;
+pub const NLM_F_EXCL: c_int = 0x200;
+pub const NLM_F_CREATE: c_int = 0x400;
+pub const NLM_F_APPEND: c_int = 0x800;
+
+pub const NLM_F_NONREC: c_int = 0x100;
+
+pub const NLM_F_CAPPED: c_int = 0x100;
+pub const NLM_F_ACK_TLVS: c_int = 0x200;
+
+pub const NLMSG_NOOP: c_int = 0x1;
+pub const NLMSG_ERROR: c_int = 0x2;
+pub const NLMSG_DONE: c_int = 0x3;
+pub const NLMSG_OVERRUN: c_int = 0x4;
+
+pub const NLMSG_MIN_TYPE: c_int = 0x10;
+
+s! {
+ pub struct nlmsgerr {
+ pub error: c_int,
+ pub msg: nlmsghdr,
+ }
+}
+
+pub const NETLINK_ADD_MEMBERSHIP: c_int = 1;
+pub const NETLINK_DROP_MEMBERSHIP: c_int = 2;
+pub const NETLINK_PKTINFO: c_int = 3;
+pub const NETLINK_BROADCAST_ERROR: c_int = 4;
+pub const NETLINK_NO_ENOBUFS: c_int = 5;
+pub const NETLINK_RX_RING: c_int = 6;
+pub const NETLINK_TX_RING: c_int = 7;
+pub const NETLINK_LISTEN_ALL_NSID: c_int = 8;
+pub const NETLINK_LIST_MEMBERSHIPS: c_int = 9;
+pub const NETLINK_CAP_ACK: c_int = 10;
+pub const NETLINK_EXT_ACK: c_int = 11;
+pub const NETLINK_GET_STRICT_CHK: c_int = 12;
+
+s! {
+ pub struct nl_pktinfo {
+ pub group: u32,
+ }
+
+ pub struct nl_mmap_req {
+ pub nm_block_size: c_uint,
+ pub nm_block_nr: c_uint,
+ pub nm_frame_size: c_uint,
+ pub nm_frame_nr: c_uint,
+ }
+
+ pub struct nl_mmap_hdr {
+ pub nm_status: c_uint,
+ pub nm_len: c_uint,
+ pub nm_group: u32,
+ pub nm_pid: u32,
+ pub nm_uid: u32,
+ pub nm_gid: u32,
+ }
+}
+
+s! {
+ pub struct nlattr {
+ pub nla_len: u16,
+ pub nla_type: u16,
+ }
+}
+
+pub const NLA_F_NESTED: c_int = 1 << 15;
+pub const NLA_F_NET_BYTEORDER: c_int = 1 << 14;
+pub const NLA_TYPE_MASK: c_int = !(NLA_F_NESTED | NLA_F_NET_BYTEORDER);
+
+pub const NLA_ALIGNTO: c_int = 4;
+
+f! {
+ pub fn NLA_ALIGN(len: c_int) -> c_int {
+ return ((len) + NLA_ALIGNTO - 1) & !(NLA_ALIGNTO - 1);
+ }
+}
diff --git a/external/vendor/libc/src/new/linux_uapi/linux/pidfd.rs b/external/vendor/libc/src/new/linux_uapi/linux/pidfd.rs
new file mode 100644
index 0000000..1835184
--- /dev/null
+++ b/external/vendor/libc/src/new/linux_uapi/linux/pidfd.rs
@@ -0,0 +1,59 @@
+//! Header: `uapi/linux/pidfd.h`
+
+use crate::prelude::*;
+use crate::{
+ Ioctl,
+ _IO,
+ _IOWR,
+};
+
+/* Flags for pidfd_open(). */
+pub const PIDFD_NONBLOCK: c_uint = crate::O_NONBLOCK as c_uint;
+pub const PIDFD_THREAD: c_uint = crate::O_EXCL as c_uint;
+
+/* Flags for pidfd_send_signal(). */
+pub const PIDFD_SIGNAL_THREAD: c_uint = 1 << 0;
+pub const PIDFD_SIGNAL_THREAD_GROUP: c_uint = 1 << 1;
+pub const PIDFD_SIGNAL_PROCESS_GROUP: c_uint = 1 << 2;
+
+/* Flags for pidfd_info. */
+pub const PIDFD_INFO_PID: c_uint = 1 << 0;
+pub const PIDFD_INFO_CREDS: c_uint = 1 << 1;
+pub const PIDFD_INFO_CGROUPID: c_uint = 1 << 2;
+pub const PIDFD_INFO_EXIT: c_uint = 1 << 3;
+
+pub const PIDFD_INFO_SIZE_VER0: c_uint = 64;
+
+s! {
+ #[non_exhaustive]
+ pub struct pidfd_info {
+ pub mask: crate::__u64,
+ pub cgroupid: crate::__u64,
+ pub pid: crate::__u32,
+ pub tgid: crate::__u32,
+ pub ppid: crate::__u32,
+ pub ruid: crate::__u32,
+ pub rgid: crate::__u32,
+ pub euid: crate::__u32,
+ pub egid: crate::__u32,
+ pub suid: crate::__u32,
+ pub sgid: crate::__u32,
+ pub fsuid: crate::__u32,
+ pub fsgid: crate::__u32,
+ pub exit_code: crate::__s32,
+ }
+}
+
+const PIDFS_IOCTL_MAGIC: c_uint = 0xFF;
+
+pub const PIDFD_GET_CGROUP_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 1);
+pub const PIDFD_GET_IPC_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 2);
+pub const PIDFD_GET_MNT_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 3);
+pub const PIDFD_GET_NET_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 4);
+pub const PIDFD_GET_PID_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 5);
+pub const PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 6);
+pub const PIDFD_GET_TIME_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 7);
+pub const PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 8);
+pub const PIDFD_GET_USER_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 9);
+pub const PIDFD_GET_UTS_NAMESPACE: Ioctl = _IO(PIDFS_IOCTL_MAGIC, 10);
+pub const PIDFD_GET_INFO: Ioctl = _IOWR::<pidfd_info>(PIDFS_IOCTL_MAGIC, 11);
diff --git a/external/vendor/libc/src/new/linux_uapi/mod.rs b/external/vendor/libc/src/new/linux_uapi/mod.rs
index e0d4e09..8ac3022 100644
--- a/external/vendor/libc/src/new/linux_uapi/mod.rs
+++ b/external/vendor/libc/src/new/linux_uapi/mod.rs
@@ -1,4 +1,3 @@
//! 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
index 0a2a55b..c0c6891 100644
--- a/external/vendor/libc/src/new/mod.rs
+++ b/external/vendor/libc/src/new/mod.rs
@@ -3,13 +3,234 @@
//!
//! Eventually everything should be moved over, and we will move this directory to the top
//! level in `src`.
+//!
+//! # Basic structure
+//!
+//! Each child module here represents a library or group of libraries that we are binding. Each of
+//! these has several submodules, representing either a directory or a header file in that library.
+//!
+//! `#include`s turn into `pub use ...*;` statements. Then at the root level (here), we choose
+//! which top-level headers we want to reexport the definitions for.
+//!
+//! All modules are only crate-public since we don't reexport this structure.
+
+mod common;
+
+/* The `pub(crate) use ...` statements are commented while the modules are empty */
+// Platform libraries and combined platform+libc
+//
+// Not supported or not needed:
+// * amdhsa
+// * cuda
+// * lynxos178
+// * managarm
+// * motor
+// * none
+// * psp
+// * psx
+// * uefi
+// * unknown
+// * vexos
+// * zkvm
+//
+// Combined to target_vendor = "apple"
+// * ios
+// * macos
+// * tvos
+// * visionos
+// * watchos
cfg_if! {
- if #[cfg(target_os = "linux")] {
- mod linux_uapi;
- pub use linux_uapi::*;
+ if #[cfg(target_os = "aix")] {
+ mod aix;
+ pub(crate) use aix::*;
} else if #[cfg(target_os = "android")] {
- mod bionic;
- pub use bionic::*;
+ mod bionic_libc;
+ pub(crate) use bionic_libc::*;
+ } else if #[cfg(target_vendor = "apple")] {
+ mod apple;
+ pub(crate) use apple::*;
+ } else if #[cfg(target_os = "cygwin")] {
+ mod cygwin;
+ pub(crate) use cygwin::*;
+ } else if #[cfg(target_os = "dragonfly")] {
+ mod dragonfly;
+ pub(crate) use dragonfly::*;
+ } else if #[cfg(target_os = "emscripten")] {
+ mod emscripten;
+ pub use emscripten::sched::*;
+ pub(crate) use emscripten::*;
+ } else if #[cfg(target_os = "espidf")] {
+ mod espidf;
+ // pub(crate) use espidf::*;
+ } else if #[cfg(target_os = "freebsd")] {
+ mod freebsd;
+ pub(crate) use freebsd::*;
+ } else if #[cfg(target_os = "fuchsia")] {
+ mod fuchsia;
+ pub(crate) use fuchsia::*;
+ } else if #[cfg(target_os = "haiku")] {
+ mod haiku;
+ pub(crate) use haiku::*;
+ } else if #[cfg(target_os = "hermit")] {
+ mod hermit_abi;
+ // pub(crate) use hermit_abi::*;
+ } else if #[cfg(target_os = "horizon")] {
+ mod horizon;
+ // pub(crate) use horizon::*;
+ } else if #[cfg(target_os = "hurd")] {
+ mod hurd;
+ // pub(crate) use hurd::*;
+ } else if #[cfg(target_os = "illumos")] {
+ mod illumos;
+ pub(crate) use illumos::*;
+ } else if #[cfg(target_os = "l4re")] {
+ mod l4re;
+ // pub(crate) use l4re::*;
+ } else if #[cfg(target_os = "linux")] {
+ mod linux_uapi;
+ pub(crate) use linux_uapi::*;
+ } else if #[cfg(target_os = "netbsd")] {
+ mod netbsd;
+ pub(crate) use netbsd::*;
+ } else if #[cfg(target_os = "nto")] {
+ mod nto;
+ pub(crate) use nto::*;
+ } else if #[cfg(target_os = "nuttx")] {
+ mod nuttx;
+ pub(crate) use nuttx::*;
+ } else if #[cfg(target_os = "openbsd")] {
+ mod openbsd;
+ pub(crate) use openbsd::*;
+ } else if #[cfg(target_os = "qurt")] {
+ pub mod qurt;
+ pub use qurt::*;
+ } else if #[cfg(target_os = "redox")] {
+ mod redox;
+ // pub(crate) use redox::*;
+ } else if #[cfg(target_os = "rtems")] {
+ mod rtems;
+ // pub(crate) use rtems::*;
+ } else if #[cfg(target_os = "solaris")] {
+ mod solaris;
+ pub(crate) use solaris::*;
+ } else if #[cfg(target_os = "solid_asp3")] {
+ mod solid;
+ // pub(crate) use solid::*;
+ } else if #[cfg(target_os = "teeos")] {
+ mod teeos;
+ // pub(crate) use teeos::*;
+ } else if #[cfg(target_os = "trusty")] {
+ mod trusty;
+ // pub(crate) use trusty::*;
+ } else if #[cfg(target_os = "vita")] {
+ mod vita;
+ // pub(crate) use vita::*;
+ } else if #[cfg(target_os = "vxworks")] {
+ mod vxworks;
+ pub(crate) use vxworks::*;
+ } else if #[cfg(target_os = "wasi")] {
+ mod wasi;
+ // pub(crate) use wasi::*;
+ } else if #[cfg(target_os = "windows")] {
+ mod ucrt;
+ // pub(crate) use ucrt::*;
+ } else if #[cfg(target_os = "xous")] {
+ mod xous;
+ // pub(crate) use xous::*;
+ }
+}
+
+// Multi-platform libc
+cfg_if! {
+ // FIXME(vxworks): vxworks sets `target_env = "gnu"` but maybe shouldn't.
+ if #[cfg(all(
+ target_family = "unix",
+ target_env = "gnu",
+ not(target_os = "vxworks")
+ ))] {
+ mod glibc;
+ pub(crate) use glibc::*;
+ } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] {
+ // OhOS also uses the musl libc
+ mod musl;
+ pub use musl::sched::*;
+ pub(crate) use musl::*;
+ } else if #[cfg(target_env = "newlib")] {
+ mod newlib;
+ pub(crate) use newlib::*;
+ } else if #[cfg(target_env = "relibc")] {
+ mod relibc;
+ pub(crate) use relibc::*;
+ } else if #[cfg(target_env = "sgx")] {
+ mod sgx;
+ // pub(crate) use sgx::*;
+ } else if #[cfg(target_env = "uclibc")] {
+ mod uclibc;
+ pub(crate) use uclibc::*;
+ }
+}
+
+// Per-OS headers we export
+cfg_if! {
+ if #[cfg(target_os = "android")] {
+ pub use sys::socket::*;
+ } else if #[cfg(target_os = "linux")] {
+ pub use linux::can::bcm::*;
+ pub use linux::can::error::*;
+ pub use linux::can::j1939::*;
+ pub use linux::can::raw::*;
+ pub use linux::can::*;
+ pub use linux::keyctl::*;
+ pub use linux::membarrier::*;
+ pub use linux::netlink::*;
+ pub use linux::pidfd::*;
+ #[cfg(target_env = "gnu")]
+ pub use net::route::*;
+ } else if #[cfg(target_vendor = "apple")] {
+ pub use pthread::*;
+ pub use pthread_::introspection::*;
+ pub use pthread_::pthread_spis::*;
+ pub use pthread_::spawn::*;
+ pub use pthread_::stack_np::*;
+ pub use signal::*;
+ } else if #[cfg(target_os = "netbsd")] {
+ pub use net::if_::*;
+ pub use sys::file::*;
+ pub use sys::ipc::*;
+ pub use sys::socket::*;
+ pub use sys::statvfs::*;
+ pub use sys::time::*;
+ pub use sys::timex::*;
+ pub use sys::types::*;
+ pub use utmp_::*;
+ pub use utmpx_::*;
+ } else if #[cfg(target_os = "openbsd")] {
+ pub use sys::ipc::*;
+ } else if #[cfg(target_os = "nto")] {
+ pub use net::bpf::*;
+ pub use net::if_::*;
+ }
+}
+
+// Per-env headers we export
+cfg_if! {
+ if #[cfg(any(target_env = "musl", target_env = "ohos"))] {
+ pub use sys::socket::*;
+ }
+}
+
+// Per-family headers we export
+cfg_if! {
+ if #[cfg(all(target_family = "unix", not(target_os = "qurt")))] {
+ // FIXME(pthread): eventually all platforms should use this module
+ #[cfg(any(
+ target_os = "android",
+ target_os = "emscripten",
+ target_os = "l4re",
+ target_os = "linux"
+ ))]
+ pub use pthread::*;
+ pub use unistd::*;
}
}
diff --git a/external/vendor/libc/src/new/musl/arch/generic/mod.rs b/external/vendor/libc/src/new/musl/arch/generic/mod.rs
new file mode 100644
index 0000000..ac02505
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/generic/mod.rs
@@ -0,0 +1,7 @@
+//! Source directory: `arch/generic/`
+//!
+//! <https://github.com/kraj/musl/tree/master/arch/generic>
+
+pub(crate) mod bits {
+ // Currently unused
+}
diff --git a/external/vendor/libc/src/new/musl/arch/mips/bits/socket.rs b/external/vendor/libc/src/new/musl/arch/mips/bits/socket.rs
new file mode 100644
index 0000000..77b53e4
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/mips/bits/socket.rs
@@ -0,0 +1,4 @@
+use crate::prelude::*;
+
+pub const SOCK_STREAM: c_int = 2;
+pub const SOCK_DGRAM: c_int = 1;
diff --git a/external/vendor/libc/src/new/musl/arch/mips/mod.rs b/external/vendor/libc/src/new/musl/arch/mips/mod.rs
new file mode 100644
index 0000000..2f02036
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/mips/mod.rs
@@ -0,0 +1,7 @@
+//! Source directory: `arch/mips/`
+//!
+//! <https://github.com/kraj/musl/tree/master/arch/mips>
+
+pub(crate) mod bits {
+ pub(crate) mod socket;
+}
diff --git a/external/vendor/libc/src/new/musl/arch/mips64/bits/socket.rs b/external/vendor/libc/src/new/musl/arch/mips64/bits/socket.rs
new file mode 100644
index 0000000..77b53e4
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/mips64/bits/socket.rs
@@ -0,0 +1,4 @@
+use crate::prelude::*;
+
+pub const SOCK_STREAM: c_int = 2;
+pub const SOCK_DGRAM: c_int = 1;
diff --git a/external/vendor/libc/src/new/musl/arch/mips64/mod.rs b/external/vendor/libc/src/new/musl/arch/mips64/mod.rs
new file mode 100644
index 0000000..6a45b06
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/mips64/mod.rs
@@ -0,0 +1,7 @@
+//! Source directory: `arch/mips64/`
+//!
+//! <https://github.com/kraj/musl/tree/master/arch/mips64>
+
+pub(crate) mod bits {
+ pub(crate) mod socket;
+}
diff --git a/external/vendor/libc/src/new/musl/arch/mod.rs b/external/vendor/libc/src/new/musl/arch/mod.rs
new file mode 100644
index 0000000..514d7b4
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/arch/mod.rs
@@ -0,0 +1,10 @@
+//! Source directory: `arch/`
+//!
+//! <https://github.com/kraj/musl/tree/master/arch>
+
+pub(crate) mod generic;
+
+#[cfg(target_arch = "mips")]
+pub(crate) mod mips;
+#[cfg(target_arch = "mips64")]
+pub(crate) mod mips64;
diff --git a/external/vendor/libc/src/new/musl/mod.rs b/external/vendor/libc/src/new/musl/mod.rs
new file mode 100644
index 0000000..a6551c3
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/mod.rs
@@ -0,0 +1,33 @@
+//! Musl libc.
+//!
+//! * Headers: <https://git.musl-libc.org/cgit/musl> (official)
+//! * Headers: <https://github.com/kraj/musl> (mirror)
+
+// The musl build system includes `arch/$(ARCH)` (preferred if it exists) and `arch/generic` (used
+// as the fallback). We can't exactly mirror this with glob exports, so instead we selectively
+// reexport in a new module.
+mod arch;
+
+pub(crate) mod bits {
+ cfg_if! {
+ if #[cfg(target_arch = "mips")] {
+ pub(crate) use super::arch::mips::bits::socket;
+ } else if #[cfg(target_arch = "mips64")] {
+ pub(crate) use super::arch::mips64::bits::socket;
+ } else {
+ // Reexports from generic will live here once we need them.
+ }
+ }
+}
+
+pub(crate) mod pthread;
+
+/// Directory: `sys/`
+///
+/// <https://github.com/kraj/musl/tree/kraj/master/include/sys>
+pub(crate) mod sys {
+ pub(crate) mod socket;
+}
+
+pub(crate) mod sched;
+pub(crate) mod unistd;
diff --git a/external/vendor/libc/src/new/musl/pthread.rs b/external/vendor/libc/src/new/musl/pthread.rs
new file mode 100644
index 0000000..0d578bc
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/pthread.rs
@@ -0,0 +1,62 @@
+//! Header: `pthread.h`
+//!
+//! <https://github.com/kraj/musl/blob/kraj/master/include/pthread.h>
+
+pub use crate::new::common::linux_like::pthread::{
+ pthread_getaffinity_np,
+ pthread_getattr_np,
+ pthread_getname_np,
+ pthread_setaffinity_np,
+ pthread_setname_np,
+};
+pub use crate::new::common::posix::pthread::{
+ pthread_atfork,
+ pthread_attr_getguardsize,
+ pthread_attr_getinheritsched,
+ pthread_attr_getschedparam,
+ pthread_attr_getschedpolicy,
+ pthread_attr_getstack,
+ pthread_attr_setguardsize,
+ pthread_attr_setinheritsched,
+ pthread_attr_setschedparam,
+ pthread_attr_setschedpolicy,
+ pthread_attr_setstack,
+ pthread_barrier_destroy,
+ pthread_barrier_init,
+ pthread_barrier_wait,
+ pthread_barrierattr_destroy,
+ pthread_barrierattr_getpshared,
+ pthread_barrierattr_init,
+ pthread_barrierattr_setpshared,
+ pthread_condattr_getclock,
+ pthread_condattr_getpshared,
+ pthread_condattr_setclock,
+ pthread_condattr_setpshared,
+ pthread_create,
+ pthread_getcpuclockid,
+ pthread_getschedparam,
+ pthread_kill,
+ pthread_mutex_timedlock,
+ pthread_mutexattr_getprotocol,
+ pthread_mutexattr_getpshared,
+ pthread_mutexattr_setprotocol,
+ pthread_mutexattr_setpshared,
+ pthread_once,
+ pthread_rwlockattr_getpshared,
+ pthread_rwlockattr_setpshared,
+ pthread_setschedparam,
+ pthread_setschedprio,
+ pthread_sigmask,
+ pthread_spin_destroy,
+ pthread_spin_init,
+ pthread_spin_lock,
+ pthread_spin_trylock,
+ pthread_spin_unlock,
+};
+#[cfg(not(target_env = "ohos"))]
+pub use crate::new::common::posix::pthread::{
+ pthread_cancel,
+ pthread_mutex_consistent,
+ pthread_mutexattr_getrobust,
+ pthread_mutexattr_setrobust,
+};
diff --git a/external/vendor/libc/src/new/musl/sched.rs b/external/vendor/libc/src/new/musl/sched.rs
new file mode 100644
index 0000000..3bf854e
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/sched.rs
@@ -0,0 +1,38 @@
+use crate::prelude::*;
+
+cfg_if! {
+ if #[cfg(musl_v1_2_3)] {
+ s! {
+ struct __c_anon_sched_param__reserved2 {
+ __reserved1: crate::time_t,
+ __reserved2: c_long,
+ }
+
+ pub struct sched_param {
+ pub sched_priority: c_int,
+
+ __reserved1: Padding<c_int>,
+ #[cfg(musl32_time64)]
+ __reserved2: Padding<[c_long; 4]>,
+ #[cfg(not(musl32_time64))]
+ __reserved2: Padding<[__c_anon_sched_param__reserved2; 2]>,
+ __reserved3: Padding<c_int>,
+ }
+ }
+ } else {
+ s! {
+ pub struct sched_param {
+ pub sched_priority: c_int,
+
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_low_priority: c_int,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_repl_period: crate::timespec,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_init_budget: crate::timespec,
+ #[deprecated(since = "0.2.173", note = "This field has been removed upstream")]
+ pub sched_ss_max_repl: c_int,
+ }
+ }
+ }
+}
diff --git a/external/vendor/libc/src/new/musl/sys/socket.rs b/external/vendor/libc/src/new/musl/sys/socket.rs
new file mode 100644
index 0000000..e723043
--- /dev/null
+++ b/external/vendor/libc/src/new/musl/sys/socket.rs
@@ -0,0 +1,64 @@
+//! Header: `sys/socket.h`
+//!
+//! <https://github.com/kraj/musl/blob/kraj/master/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,
+ #[cfg(all(target_pointer_width = "64", target_endian = "big"))]
+ __pad1: Padding<c_int>,
+ pub msg_iovlen: c_int,
+ #[cfg(all(target_pointer_width = "64", target_endian = "little"))]
+ __pad1: Padding<c_int>,
+ pub msg_control: *mut c_void,
+ #[cfg(aWhy this scored 17/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.