!8 升级libc版本至0.2.153

Merge pull request !8 from archane/upgrade
This commit is contained in:
openharmony_ci
2025-02-26 10:18:22 +00:00
committed by Gitee
193 changed files with 22099 additions and 1318 deletions
+18 -18
View File
@@ -1,23 +1,9 @@
task:
name: nightly x86_64-unknown-freebsd-12
freebsd_instance:
image: freebsd-12-4-release-amd64
setup_script:
- pkg install -y curl
- curl https://sh.rustup.rs -sSf --output rustup.sh
- sh rustup.sh --default-toolchain nightly -y --profile=minimal
- . $HOME/.cargo/env
test_script:
- . $HOME/.cargo/env
- LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd
- sh ci/run.sh x86_64-unknown-freebsd
task:
name: nightly x86_64-unknown-freebsd-13
freebsd_instance:
image: freebsd-13-1-release-amd64
image_family: freebsd-13-2
setup_script:
- pkg install -y curl
- pkg install -y libnghttp2 curl
- curl https://sh.rustup.rs -sSf --output rustup.sh
- sh rustup.sh -y --default-toolchain nightly --profile=minimal
- . $HOME/.cargo/env
@@ -29,9 +15,23 @@ task:
task:
name: nightly x86_64-unknown-freebsd-14
freebsd_instance:
image: freebsd-14-0-current-amd64-v20220902
image: freebsd-14-0-release-amd64-ufs
setup_script:
- pkg install -y curl
- pkg install -y libnghttp2 curl
- curl https://sh.rustup.rs -sSf --output rustup.sh
- sh rustup.sh -y --default-toolchain nightly --profile=minimal
- . $HOME/.cargo/env
test_script:
- . $HOME/.cargo/env
- LIBC_CI=1 sh ci/run.sh x86_64-unknown-freebsd
- sh ci/run.sh x86_64-unknown-freebsd
task:
name: nightly x86_64-unknown-freebsd-15
freebsd_instance:
image_family: freebsd-15-0-snap
setup_script:
- pkg install -y libnghttp2 curl
- curl https://sh.rustup.rs -sSf --output rustup.sh
- sh rustup.sh -y --default-toolchain nightly --profile=minimal
- . $HOME/.cargo/env
+1 -1
View File
@@ -21,7 +21,7 @@ ohos_cargo_crate("lib") {
sources = [ "src/lib.rs" ]
edition = "2015"
cargo_pkg_version = "0.2.139"
cargo_pkg_version = "0.2.153"
cargo_pkg_authors = "The Rust Project Developers"
cargo_pkg_name = "libc"
features = [
+8 -1
View File
@@ -3,6 +3,13 @@
Welcome! If you are reading this document, it means you are interested in contributing
to the `libc` crate.
## v0.2 changes
If you want to add your changes to v0.2, please submit them to the `libc-0.2` branch.
If you want to add any breaking changes, it should be submitted to the main branch,
which has changes for v0.3.
We will support and make a new release for v0.2 until we make the first release of v0.3.
## Adding an API
Want to use an API which currently isn't bound in `libc`? It's quite easy to add
@@ -54,7 +61,7 @@ We have two automated tests running on [GitHub Actions](https://github.com/rust-
- `cd libc-test && cargo test`
- Use the `skip_*()` functions in `build.rs` if you really need a workaround.
2. Style checker
- `rustc ci/style.rs && ./style src`
- [`sh ci/style.sh`](https://github.com/rust-lang/libc/blob/main/ci/style.sh)
## Breaking change policy
+114 -3
View File
@@ -1,13 +1,13 @@
[package]
name = "libc"
version = "0.2.139"
version = "0.2.153"
authors = ["The Rust Project Developers"]
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/rust-lang/libc"
homepage = "https://github.com/rust-lang/libc"
documentation = "https://docs.rs/libc/"
keywords = ["libc", "ffi", "bindings", "operating", "system" ]
keywords = ["libc", "ffi", "bindings", "operating", "system"]
categories = ["external-ffi-bindings", "no-std", "os"]
build = "build.rs"
exclude = ["/ci/*", "/.github/*", "/.cirrus.yml", "/triagebot.toml"]
@@ -17,6 +17,117 @@ Raw FFI bindings to platform libraries like libc.
[package.metadata.docs.rs]
features = ["const-extern-fn", "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",
"aarch64-unknown-linux-musl",
"aarch64-unknown-netbsd",
"aarch64-unknown-openbsd",
"aarch64-wrs-vxworks",
"arm-linux-androideabi",
"arm-unknown-linux-gnueabi",
"arm-unknown-linux-gnueabihf",
"arm-unknown-linux-musleabi",
"arm-unknown-linux-musleabihf",
"armebv7r-none-eabi",
"armebv7r-none-eabihf",
"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",
"hexagon-unknown-linux-musl",
"i586-pc-windows-msvc",
"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",
"i686-unknown-netbsd",
"i686-unknown-openbsd",
"i686-wrs-vxworks",
"mips-unknown-linux-gnu",
"mips-unknown-linux-musl",
"mips64-unknown-linux-gnuabi64",
"mips64-unknown-linux-muslabi64",
"mips64el-unknown-linux-gnuabi64",
"mips64el-unknown-linux-muslabi64",
"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",
"powerpc-wrs-vxworks-spe",
"powerpc64-unknown-freebsd",
"powerpc64-unknown-linux-gnu",
"powerpc64-wrs-vxworks",
"powerpc64le-unknown-linux-gnu",
"riscv32gc-unknown-linux-gnu",
"riscv32i-unknown-none-elf",
"riscv32imac-unknown-none-elf",
"riscv32imc-unknown-none-elf",
"riscv64gc-unknown-freebsd",
"riscv64gc-unknown-hermit",
"riscv64gc-unknown-linux-gnu",
"riscv64gc-unknown-linux-musl",
"riscv64gc-unknown-none-elf",
"riscv64imac-unknown-none-elf",
"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",
"wasm32-wasi",
"x86_64-apple-darwin",
"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-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-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"]
[dependencies]
rustc-std-workspace-core = { version = "1.0.0", optional = true }
@@ -29,7 +140,7 @@ rustc-dep-of-std = ['align', 'rustc-std-workspace-core']
extra_traits = []
const-extern-fn = []
# use_std is deprecated, use `std` instead
use_std = [ 'std' ]
use_std = ['std']
[workspace]
members = ["libc-test"]
+1 -1
View File
@@ -3,7 +3,7 @@
"Name": "libc",
"License": "Apache License V2.0, MIT",
"License File": "LICENSE-APACHE, LICENSE-MIT",
"Version Number": "0.2.139",
"Version Number": "0.2.153",
"Owner": "fangting12@huawei.com",
"Upstream URL": "https://github.com/rust-lang/libc",
"Description": "A Rust library that provides bindings to the C standard library."
+15 -7
View File
@@ -14,7 +14,16 @@ of all the exported APIs match the platform that libc is compiled for.
More detailed information about the design of this library can be found in its
[associated RFC][rfc].
[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/1291-promote-libc.md
[rfc]: https://github.com/rust-lang/rfcs/blob/HEAD/text/1291-promote-libc.md
## v0.3 Roadmap
The main branch is now for v0.3 which has some breaking changes.
For v0.2, please submit PRs to the `libc-0.2` branch instead.
We will stop making new v0.2 releases once we release v0.3 on crates.io.
See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for details.
## Usage
@@ -60,10 +69,10 @@ newer Rust features are only available on newer Rust toolchains:
## Platform support
[Platform-specific documentation (master branch)][docs.master].
You can see the platform(target)-specific docs on [docs.rs], select a platform you want to see.
See
[`ci/build.sh`](https://github.com/rust-lang/libc/blob/master/ci/build.sh)
[`ci/build.sh`](https://github.com/rust-lang/libc/blob/HEAD/ci/build.sh)
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.
@@ -75,10 +84,10 @@ platforms in which `libc` tests are run.
This project is licensed under either of
* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
([LICENSE-APACHE](https://github.com/rust-lang/libc/blob/master/LICENSE-APACHE))
([LICENSE-APACHE](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-APACHE))
* [MIT License](https://opensource.org/licenses/MIT)
([LICENSE-MIT](https://github.com/rust-lang/libc/blob/master/LICENSE-MIT))
([LICENSE-MIT](https://github.com/rust-lang/libc/blob/HEAD/LICENSE-MIT))
at your option.
@@ -87,7 +96,7 @@ at your option.
We welcome all people who want to contribute. Please see the [contributing
instructions] for more information.
[contributing instructions]: https://github.com/rust-lang/libc/blob/master/CONTRIBUTING.md
[contributing instructions]: https://github.com/rust-lang/libc/blob/HEAD/CONTRIBUTING.md
Contributions in any form (issues, pull requests, etc.) to this project
must adhere to Rust's [Code of Conduct].
@@ -107,4 +116,3 @@ dual licensed as above, without any additional terms or conditions.
[Documentation]: https://docs.rs/libc/badge.svg
[docs.rs]: https://docs.rs/libc
[License]: https://img.shields.io/crates/l/libc.svg
[docs.master]: https://rust-lang.github.io/libc/#platform-specific-documentation
+144 -25
View File
@@ -1,6 +1,46 @@
use std::env;
use std::process::Command;
use std::str;
use std::string::String;
// 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
// make sure to add it to this list as well.
const ALLOWED_CFGS: &'static [&'static str] = &[
"emscripten_new_stat_abi",
"freebsd10",
"freebsd11",
"freebsd12",
"freebsd13",
"freebsd14",
"freebsd15",
"libc_align",
"libc_cfg_target_vendor",
"libc_const_extern_fn",
"libc_const_extern_fn_unstable",
"libc_const_size_of",
"libc_core_cvoid",
"libc_deny_warnings",
"libc_int128",
"libc_long_array",
"libc_non_exhaustive",
"libc_packedN",
"libc_priv_mod_use",
"libc_ptr_addr_of",
"libc_thread_local",
"libc_underscore_const_names",
"libc_union",
];
// Extra values to allow for check-cfg.
const CHECK_CFG_EXTRA: &'static [(&'static str, &'static [&'static str])] = &[
("target_os", &["switch", "aix", "ohos", "hurd"]),
("target_env", &["illumos", "wasi", "aix", "ohos"]),
(
"target_arch",
&["loongarch64", "mips32r6", "mips64r6", "csky"],
),
];
fn main() {
// Avoid unnecessary re-building.
@@ -11,6 +51,7 @@ fn main() {
let align_cargo_feature = env::var("CARGO_FEATURE_ALIGN").is_ok();
let const_extern_fn_cargo_feature = env::var("CARGO_FEATURE_CONST_EXTERN_FN").is_ok();
let libc_ci = env::var("LIBC_CI").is_ok();
let libc_check_cfg = env::var("LIBC_CHECK_CFG").is_ok();
if env::var("CARGO_FEATURE_USE_STD").is_ok() {
println!(
@@ -19,95 +60,128 @@ fn main() {
);
}
// The ABI of libc used by libstd is backward compatible with FreeBSD 10.
// The ABI of libc used by std is backward compatible with FreeBSD 12.
// The ABI of libc from crates.io is backward compatible with FreeBSD 11.
//
// On CI, we detect the actual FreeBSD version and match its ABI exactly,
// running tests to ensure that the ABI is correct.
match which_freebsd() {
Some(10) if libc_ci || rustc_dep_of_std => {
println!("cargo:rustc-cfg=freebsd10")
}
Some(11) if libc_ci => println!("cargo:rustc-cfg=freebsd11"),
Some(12) if libc_ci => println!("cargo:rustc-cfg=freebsd12"),
Some(13) if libc_ci => println!("cargo:rustc-cfg=freebsd13"),
Some(14) if libc_ci => println!("cargo:rustc-cfg=freebsd14"),
Some(_) | None => println!("cargo:rustc-cfg=freebsd11"),
Some(10) if libc_ci => set_cfg("freebsd10"),
Some(11) if libc_ci => set_cfg("freebsd11"),
Some(12) if libc_ci || rustc_dep_of_std => set_cfg("freebsd12"),
Some(13) if libc_ci => set_cfg("freebsd13"),
Some(14) if libc_ci => set_cfg("freebsd14"),
Some(15) if libc_ci => set_cfg("freebsd15"),
Some(_) | None => set_cfg("freebsd11"),
}
match emcc_version_code() {
Some(v) if (v >= 30142) => set_cfg("emscripten_new_stat_abi"),
// Non-Emscripten or version < 3.1.42.
Some(_) | None => (),
}
// On CI: deny all warnings
if libc_ci {
println!("cargo:rustc-cfg=libc_deny_warnings");
set_cfg("libc_deny_warnings");
}
// Rust >= 1.15 supports private module use:
if rustc_minor_ver >= 15 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_priv_mod_use");
set_cfg("libc_priv_mod_use");
}
// Rust >= 1.19 supports unions:
if rustc_minor_ver >= 19 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_union");
set_cfg("libc_union");
}
// Rust >= 1.24 supports const mem::size_of:
if rustc_minor_ver >= 24 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_const_size_of");
set_cfg("libc_const_size_of");
}
// Rust >= 1.25 supports repr(align):
if rustc_minor_ver >= 25 || rustc_dep_of_std || align_cargo_feature {
println!("cargo:rustc-cfg=libc_align");
set_cfg("libc_align");
}
// Rust >= 1.26 supports i128 and u128:
if rustc_minor_ver >= 26 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_int128");
set_cfg("libc_int128");
}
// Rust >= 1.30 supports `core::ffi::c_void`, so libc can just re-export it.
// Otherwise, it defines an incompatible type to retaining
// backwards-compatibility.
if rustc_minor_ver >= 30 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_core_cvoid");
set_cfg("libc_core_cvoid");
}
// Rust >= 1.33 supports repr(packed(N)) and cfg(target_vendor).
if rustc_minor_ver >= 33 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_packedN");
println!("cargo:rustc-cfg=libc_cfg_target_vendor");
set_cfg("libc_packedN");
set_cfg("libc_cfg_target_vendor");
}
// Rust >= 1.40 supports #[non_exhaustive].
if rustc_minor_ver >= 40 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_non_exhaustive");
set_cfg("libc_non_exhaustive");
}
// Rust >= 1.47 supports long array:
if rustc_minor_ver >= 47 || rustc_dep_of_std {
set_cfg("libc_long_array");
}
if rustc_minor_ver >= 51 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_ptr_addr_of");
set_cfg("libc_ptr_addr_of");
}
// Rust >= 1.37.0 allows underscores as anonymous constant names.
if rustc_minor_ver >= 37 || rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_underscore_const_names");
set_cfg("libc_underscore_const_names");
}
// #[thread_local] is currently unstable
if rustc_dep_of_std {
println!("cargo:rustc-cfg=libc_thread_local");
set_cfg("libc_thread_local");
}
// Rust >= 1.62.0 allows to use `const_extern_fn` for "Rust" and "C".
if rustc_minor_ver >= 62 {
println!("cargo:rustc-cfg=libc_const_extern_fn");
set_cfg("libc_const_extern_fn");
} else {
// Rust < 1.62.0 requires a crate feature and feature gate.
if const_extern_fn_cargo_feature {
if !is_nightly || rustc_minor_ver < 40 {
panic!("const-extern-fn requires a nightly compiler >= 1.40");
}
println!("cargo:rustc-cfg=libc_const_extern_fn_unstable");
println!("cargo:rustc-cfg=libc_const_extern_fn");
set_cfg("libc_const_extern_fn_unstable");
set_cfg("libc_const_extern_fn");
}
}
// check-cfg is a nightly cargo/rustc feature to warn when unknown cfgs are used across the
// codebase. libc can configure it if the appropriate environment variable is passed. Since
// rust-lang/rust enforces it, this is useful when using a custom libc fork there.
//
// https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg
if libc_check_cfg {
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);
}
}
for &(name, values) in CHECK_CFG_EXTRA {
let values = values.join("\",\"");
if rustc_minor_ver >= 75 {
println!("cargo:rustc-check-cfg=cfg({},values(\"{}\"))", name, values);
} else {
println!("cargo:rustc-check-cfg=values({},\"{}\")", name, values);
}
}
}
}
@@ -128,6 +202,13 @@ fn rustc_minor_nightly() -> (u32, bool) {
.output()
.ok()
.expect("Failed to get rustc version");
if !output.status.success() {
panic!(
"failed to run rustc: {}",
String::from_utf8_lossy(output.stderr.as_slice())
);
}
let version = otry!(str::from_utf8(&output.stdout).ok());
let mut pieces = version.split('.');
@@ -173,6 +254,44 @@ fn which_freebsd() -> Option<i32> {
s if s.starts_with("12") => Some(12),
s if s.starts_with("13") => Some(13),
s if s.starts_with("14") => Some(14),
s if s.starts_with("15") => Some(15),
_ => None,
}
}
fn emcc_version_code() -> Option<u64> {
let output = std::process::Command::new("emcc")
.arg("-dumpversion")
.output()
.ok();
if output.is_none() {
return None;
}
let output = output.unwrap();
if !output.status.success() {
return None;
}
let stdout = String::from_utf8(output.stdout).ok();
if stdout.is_none() {
return None;
}
let version = stdout.unwrap();
// Some Emscripten versions come with `-git` attached, so split the
// version string also on the `-` char.
let mut pieces = version.trim().split(|c| c == '.' || c == '-');
let major = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
let minor = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
let patch = pieces.next().and_then(|x| x.parse().ok()).unwrap_or(0);
Some(major * 10000 + minor * 100 + patch)
}
fn set_cfg(cfg: &str) {
if !ALLOWED_CFGS.contains(&cfg) {
panic!("trying to set cfg {}, but it is not in ALLOWED_CFGS", cfg);
}
println!("cargo:rustc-cfg={}", cfg);
}
+3 -3
View File
@@ -42,9 +42,9 @@ The remaining architectures look like:
* The BSD builds, currently OpenBSD and FreeBSD, use QEMU to boot up a system
and compile/run tests. More information on that below.
[Actions config]: https://github.com/rust-lang/libc/tree/master/.github/workflows
[Cirrus config]: https://github.com/rust-lang/libc/blob/master/.cirrus.yml
[android-docker]: https://github.com/rust-lang/libc/blob/master/ci/docker/x86_64-linux-android/Dockerfile
[Actions config]: https://github.com/rust-lang/libc/tree/HEAD/.github/workflows
[Cirrus config]: https://github.com/rust-lang/libc/blob/HEAD/.cirrus.yml
[android-docker]: https://github.com/rust-lang/libc/blob/HEAD/ci/docker/x86_64-linux-android/Dockerfile
## QEMU
+5 -35
View File
@@ -2,40 +2,10 @@
set -ex
NDK=android-ndk-r21d
wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip
unzip -q ${NDK}-linux-x86_64.zip
NDK=android-ndk-r26b
wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux.zip
unzip -q ${NDK}-linux.zip
case "$1" in
arm)
arch=arm
api=28
;;
armv7)
arch=arm
api=28
;;
aarch64)
arch=arm64
api=28
;;
i686)
arch=x86
api=28
;;
x86_64)
arch=x86_64
api=28
;;
*)
echo "invalid arch: $1"
exit 1
;;
esac;
mv ./${NDK}/toolchains/llvm/prebuilt/linux-x86_64 /android
python3 ${NDK}/build/tools/make_standalone_toolchain.py \
--install-dir "/android/ndk-${1}" \
--arch "${arch}" \
--api ${api}
rm -rf ./${NDK}-linux-x86_64.zip ./${NDK}
rm -rf ./${NDK}-linux.zip ./${NDK}
+13 -13
View File
@@ -39,7 +39,7 @@ test_target() {
done
fi
# Test that libc builds without any default features (no libstd)
# Test that libc builds without any default features (no std)
if [ "${NO_STD}" != "1" ]; then
cargo "+${RUST}" "${BUILD_CMD}" -vv --no-default-features --target "${TARGET}"
else
@@ -47,8 +47,8 @@ test_target() {
RUSTFLAGS="-A improper_ctypes_definitions" cargo "+${RUST}" "${BUILD_CMD}" \
-Z build-std=core,alloc -vv --no-default-features --target "${TARGET}"
fi
# Test that libc builds with default features (e.g. libstd)
# if the target supports libstd
# Test that libc builds with default features (e.g. std)
# if the target supports std
if [ "$NO_STD" != "1" ]; then
cargo "+${RUST}" "${BUILD_CMD}" -vv --target "${TARGET}"
else
@@ -102,12 +102,6 @@ i686-linux-android \
i686-unknown-freebsd \
i686-unknown-linux-gnu \
i686-unknown-linux-musl \
mips-unknown-linux-gnu \
mips-unknown-linux-musl \
mips64-unknown-linux-gnuabi64 \
mips64el-unknown-linux-gnuabi64 \
mipsel-unknown-linux-gnu \
mipsel-unknown-linux-musl \
powerpc-unknown-linux-gnu \
powerpc64-unknown-linux-gnu \
powerpc64le-unknown-linux-gnu \
@@ -136,14 +130,14 @@ i586-unknown-linux-musl \
"
RUST_NIGHTLY_LINUX_TARGETS="\
aarch64-fuchsia \
aarch64-unknown-fuchsia \
armv5te-unknown-linux-gnueabi \
armv5te-unknown-linux-musleabi \
i686-pc-windows-gnu \
riscv64gc-unknown-linux-gnu \
wasm32-wasi \
x86_64-fortanix-unknown-sgx \
x86_64-fuchsia \
x86_64-unknown-fuchsia \
x86_64-pc-solaris \
x86_64-pc-windows-gnu \
x86_64-unknown-illumos \
@@ -236,9 +230,15 @@ i686-unknown-haiku \
i686-unknown-netbsd \
i686-unknown-openbsd \
i686-wrs-vxworks \
mipsel-sony-psp \
mips-unknown-linux-gnu \
mips-unknown-linux-musl \
mips64-unknown-linux-gnuabi64 \
mips64-unknown-linux-muslabi64 \
mips64el-unknown-linux-gnuabi64 \
mips64el-unknown-linux-muslabi64 \
mipsel-unknown-linux-gnu \
mipsel-unknown-linux-musl \
mipsel-sony-psp \
nvptx64-nvidia-cuda \
powerpc-unknown-linux-gnuspe \
powerpc-unknown-netbsd \
@@ -251,6 +251,7 @@ riscv32imac-unknown-none-elf \
riscv32imc-unknown-none-elf \
riscv32gc-unknown-linux-gnu \
riscv64gc-unknown-freebsd \
riscv64gc-unknown-hermit \
riscv64gc-unknown-linux-musl \
riscv64gc-unknown-none-elf \
riscv64imac-unknown-none-elf \
@@ -283,7 +284,6 @@ if [ "${RUST}" = "nightly" ] && [ "${OS}" = "linux" ]; then
fi
RUST_APPLE_NO_CORE_TARGETS="\
armv7-apple-ios \
armv7s-apple-ios \
i686-apple-darwin \
i386-apple-ios \
+4 -3
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN dpkg --add-architecture i386
RUN apt-get update
@@ -19,9 +19,9 @@ WORKDIR /android/
COPY android* /android/
ENV ANDROID_ARCH=aarch64
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
RUN sh /android/android-install-ndk.sh
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
RUN mv /root/.android /tmp
RUN chmod 777 -R /tmp/.android
@@ -31,6 +31,7 @@ ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android28-clang \
CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=/tmp/runtest \
CC_aarch64_linux_android=aarch64-linux-android28-clang \
AR_aarch64_linux_android=llvm-ar \
HOME=/tmp
ADD runtest-android.rs /tmp/runtest.rs
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates \
gcc-aarch64-linux-gnu libc6-dev-arm64-cross qemu-user
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc make libc6-dev git curl ca-certificates \
@@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
COPY install-musl.sh /
RUN sh /install-musl.sh aarch64
# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd?
# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std?
ENV PATH=$PATH:/musl-aarch64/bin:/rust/bin \
CC_aarch64_unknown_linux_musl=musl-gcc \
RUSTFLAGS='-Clink-args=-lgcc -L /musl-aarch64/lib' \
+6 -5
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN dpkg --add-architecture i386
RUN apt-get update
@@ -19,18 +19,19 @@ WORKDIR /android/
COPY android* /android/
ENV ANDROID_ARCH=arm
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
RUN sh /android/android-install-ndk.sh
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
RUN mv /root/.android /tmp
RUN chmod 777 -R /tmp/.android
RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi28-clang \
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_RUNNER=/tmp/runtest \
CC_arm_linux_androideabi=arm-linux-androideabi-gcc \
CC_arm_linux_androideabi=armv7a-linux-androideabi28-clang \
AR_arm_linux_androideabi=llvm-ar \
HOME=/tmp
ADD runtest-android.rs /tmp/runtest.rs
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates \
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc make libc6-dev git curl ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates qemu-system-arm curl \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
# This is a workaround to avoid the interaction with tzdata.
ENV DEBIAN_FRONTEND=noninteractive
+6 -5
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN dpkg --add-architecture i386
RUN apt-get update
@@ -19,18 +19,19 @@ WORKDIR /android/
COPY android* /android/
ENV ANDROID_ARCH=i686
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
RUN sh /android/android-install-ndk.sh
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
RUN mv /root/.android /tmp
RUN chmod 777 -R /tmp/.android
RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
ENV PATH=$PATH:/rust/bin \
CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android28-clang \
CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
CC_i686_linux_android=i686-linux-android-gcc \
CC_i686_linux_android=i686-linux-android28-clang \
AR_i686_linux_android=llvm-ar \
HOME=/tmp
ADD runtest-android.rs /tmp/runtest.rs
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc-multilib libc6-dev ca-certificates
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN dpkg --add-architecture i386
RUN apt-get update
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libc6-dev qemu-user ca-certificates \
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates \
@@ -9,7 +9,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
COPY install-musl.sh /
RUN sh /install-musl.sh s390x
# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in libstd?
# FIXME: shouldn't need the `-lgcc` here, shouldn't that be in std?
ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="qemu-s390x -L /musl-s390x" \
CC_s390x_unknown_linux_gnu=musl-gcc \
@@ -1,5 +1,4 @@
# FIXME: Update to 22.04 once Debian image of sparc64 has a newer glibc.
FROM ubuntu:20.04
FROM ubuntu:23.10
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates \
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
# This is a workaround to avoid the interaction with tzdata.
ENV DEBIAN_FRONTEND=noninteractive
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && \
apt-get install -y --no-install-recommends \
+7 -6
View File
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update && \
apt-get install -y --no-install-recommends \
@@ -13,15 +13,16 @@ RUN apt-get update && \
WORKDIR /android/
ENV ANDROID_ARCH=x86_64
COPY android-install-ndk.sh /android/
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
RUN sh /android/android-install-ndk.sh
# We do not run x86_64-linux-android tests on an android emulator.
# See ci/android-sysimage.sh for information about how tests are run.
COPY android-sysimage.sh /android/
RUN bash /android/android-sysimage.sh x86_64 x86_64-24_r07.zip
ENV PATH=$PATH:/rust/bin:/android/ndk-$ANDROID_ARCH/bin \
CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \
CC_x86_64_linux_android=x86_64-linux-android-gcc \
CXX_x86_64_linux_android=x86_64-linux-android-g++ \
ENV PATH=$PATH:/rust/bin:/android/linux-x86_64/bin \
CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android28-clang \
CC_x86_64_linux_android=x86_64-linux-android28-clang \
CXX_x86_64_linux_android=x86_64-linux-android28-clang++ \
AR_x86_64_linux_android=llvm-ar \
HOME=/tmp
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc libc6-dev ca-certificates linux-headers-generic
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
gcc-multilib libc6-dev ca-certificates
@@ -1,4 +1,4 @@
FROM ubuntu:22.04
FROM ubuntu:23.10
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
-4
View File
@@ -5,8 +5,4 @@ set -ex
# shellcheck disable=SC1091
source /emsdk-portable/emsdk_env.sh &> /dev/null
# emsdk-portable provides a node binary, but we need version 8 to run wasm
# NOTE: Do not forget to sync Node.js version with `emscripten.sh`!
export PATH="/node-v14.17.0-linux-x64/bin:$PATH"
exec "$@"
-6
View File
@@ -20,9 +20,3 @@ rm -f a.*
# Make emsdk usable by any user
chmod a+rxw -R /emsdk-portable
# node 8 is required to run wasm
# NOTE: Do not forget to sync Node.js version with `emscripten-entry.sh`!
cd /
curl --retry 5 -L https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz | \
tar -xJ
-14
View File
@@ -46,20 +46,6 @@ case ${1} in
./configure --prefix="/musl-${musl_arch}"
make install -j4
;;
mips64)
musl_arch=mips64
kernel_arch=mips
CC=mips64-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \
./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
make install -j4
;;
mips64el)
musl_arch=mips64el
kernel_arch=mips
CC=mips64el-linux-gnuabi64-gcc CFLAGS="-march=mips64r2 -mabi=64" \
./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes
make install -j4
;;
s390x)
musl_arch=s390x
kernel_arch=s390
+1 -6
View File
@@ -8,12 +8,7 @@ toolchain=
if [ -n "$TOOLCHAIN" ]; then
toolchain=$TOOLCHAIN
else
# Pin the nightly version as newer nightly versions break CI,
# https://github.com/rust-lang/rust/issues/103673 contains related information.
case "$TARGET" in
*android*) toolchain=nightly-2022-10-09;;
*) toolchain=nightly;;
esac
toolchain=nightly
fi
if [ "$OS" = "windows" ]; then
: "${TARGET?The TARGET environment variable must be set.}"
+3 -3
View File
@@ -5,9 +5,9 @@ set -ex
mkdir -m 777 /qemu
cd /qemu
curl --retry 5 -LO https://github.com/qemu/qemu/raw/master/pc-bios/s390-ccw.img
curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20220914/images/generic/kernel.debian
curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20220914/images/generic/initrd.debian
curl --retry 5 -LO https://github.com/qemu/qemu/raw/HEAD/pc-bios/s390-ccw.img
curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20230607/images/generic/kernel.debian
curl --retry 5 -LO http://ftp.debian.org/debian/dists/testing/main/installer-s390x/20230607/images/generic/initrd.debian
mv kernel.debian kernel
mv initrd.debian initrd.gz
+1 -1
View File
@@ -5,7 +5,7 @@ set -ex
mkdir -m 777 /qemu
cd /qemu
curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2022-03-28/debian-11.0.0-sparc64-NETINST-1.iso
curl --retry 5 -LO https://cdimage.debian.org/cdimage/ports/snapshots/2022-12-09/debian-11.0.0-sparc64-NETINST-1.iso
7z e debian-11.0.0-sparc64-NETINST-1.iso install/initrd.gz
7z e debian-11.0.0-sparc64-NETINST-1.iso install/vmlinux
mv vmlinux kernel
+4 -4
View File
@@ -28,7 +28,7 @@ run() {
echo "Building docker container for target ${1}"
# use -f so we can use ci/ as build context
docker build -t libc -f "ci/docker/${1}/Dockerfile" ci/
docker build -t "libc-${1}" -f "ci/docker/${1}/Dockerfile" ci/
mkdir -p target
if [ -w /dev/kvm ]; then
kvm="--volume /dev/kvm:/dev/kvm"
@@ -50,7 +50,7 @@ run() {
$kvm \
--init \
--workdir /checkout \
libc \
"libc-${1}" \
sh -c "HOME=/tmp PATH=\$PATH:/rust/bin exec ci/run.sh ${1}"
}
@@ -58,7 +58,7 @@ build_switch() {
echo "Building docker container for target switch"
# use -f so we can use ci/ as build context
docker build -t libc -f "ci/docker/switch/Dockerfile" ci/
docker build -t libc-switch -f "ci/docker/switch/Dockerfile" ci/
mkdir -p target
if [ -w /dev/kvm ]; then
kvm="--volume /dev/kvm:/dev/kvm"
@@ -82,7 +82,7 @@ build_switch() {
$kvm \
--init \
--workdir /checkout \
libc \
libc-switch \
sh -c "HOME=/tmp RUSTUP_HOME=/tmp PATH=\$PATH:/rust/bin rustup default nightly \
&& rustup component add rust-src --target ci/switch.json \
&& cargo build -Z build-std=core,alloc --target ci/switch.json"
+1 -1
View File
@@ -1,4 +1,4 @@
/* This is taken from https://github.com/rust-lang/rust/blob/master/src/doc/rust.css */
/* This is taken from https://github.com/rust-lang/rust/blob/HEAD/src/doc/rust.css */
@font-face {
font-family: 'Fira Sans';
+7 -7
View File
@@ -1,6 +1,6 @@
[package]
name = "libc-test"
version = "0.2.139"
version = "0.2.153"
authors = ["The Rust Project Developers"]
license = "MIT OR Apache-2.0"
build = "build.rs"
@@ -12,19 +12,19 @@ A test crate for the libc crate.
[dependencies.libc]
path = ".."
version = "0.2.139"
version = "0.2.153"
default-features = false
[build-dependencies]
cc = "1.0.61"
cc = "1.0.83"
# FIXME: Use fork ctest until the maintainer gets back.
ctest2 = "0.4.3"
[features]
default = [ "std" ]
std = [ "libc/std" ]
align = [ "libc/align" ]
extra_traits = [ "libc/extra_traits" ]
default = ["std"]
std = ["libc/std"]
align = ["libc/align"]
extra_traits = ["libc/extra_traits"]
[[test]]
name = "main"
+717 -135
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,5 +1,5 @@
# These symbols are missing for the targets:
# * asmjs-unknown-emscripten
# These symbols are no-op or missing on these targets:
# * wasm32-unknown-emscripten
getpwuid_r
pthread_atfork
pthread_sigmask
+2
View File
@@ -7,6 +7,8 @@ HWCAP2_SVEBITPERM
HWCAP2_SVEPMULL
HWCAP2_SVESHA3
HWCAP2_SVESM4
PROT_BTI
PROT_MTE
SYS_arch_specific_syscall
SYS_syscalls
SYS_fcntl
+210
View File
@@ -61,6 +61,7 @@ ALG_OP_DECRYPT
ALG_OP_ENCRYPT
ALG_SET_AEAD_ASSOCLEN
ALG_SET_AEAD_AUTHSIZE
ALG_SET_DRBG_ENTROPY
ALG_SET_IV
ALG_SET_KEY
ALG_SET_OP
@@ -138,6 +139,7 @@ ATF_USETRAILERS
AT_EMPTY_PATH
AT_FDCWD
AT_NO_AUTOMOUNT
AT_RECURSIVE
AT_REMOVEDIR
AT_SYMLINK_FOLLOW
AT_SYMLINK_NOFOLLOW
@@ -596,6 +598,8 @@ FD_ISSET
FD_SET
FD_SETSIZE
FD_ZERO
FDB_NOTIFY_BIT
FDB_NOTIFY_INACTIVE_BIT
FF0
FF1
FFDLY
@@ -609,6 +613,14 @@ FIONCLEX
FIONREAD
FLUSHO
FOPEN_MAX
FS_IOC_GETFLAGS
FS_IOC_SETFLAGS
FS_IOC_GETVERSION
FS_IOC_SETVERSION
FS_IOC32_GETFLAGS
FS_IOC32_SETFLAGS
FS_IOC32_GETVERSION
FS_IOC32_SETVERSION
FUTEX_CLOCK_REALTIME
FUTEX_CMD_MASK
FUTEX_CMP_REQUEUE
@@ -695,6 +707,7 @@ IFF_MASTER
IFF_MULTICAST
IFF_NOARP
IFF_NOTRAILERS
IFF_NO_CARRIER
IFF_NO_PI
IFF_POINTOPOINT
IFF_PORTSEL
@@ -704,6 +717,13 @@ IFF_SLAVE
IFF_TAP
IFF_TUN
IFF_UP
TUN_F_CSUM
TUN_F_TSO4
TUN_F_TSO6
TUN_F_TSO_ECN
TUN_F_UFO
TUN_F_USO4
TUN_F_USO6
IFNAMSIZ
IF_NAMESIZE
IFA_UNSPEC
@@ -776,6 +796,19 @@ IFLA_CARRIER_DOWN_COUNT
IFLA_NEW_IFINDEX
IFLA_MIN_MTU
IFLA_MAX_MTU
IFLA_PROP_LIST
IFLA_ALT_IFNAME
IFLA_PERM_ADDRESS
IFLA_PROTO_DOWN_REASON
IFLA_PARENT_DEV_NAME
IFLA_PARENT_DEV_BUS_NAME
IFLA_GRO_MAX_SIZE
IFLA_TSO_MAX_SIZE
IFLA_TSO_MAX_SEGS
IFLA_ALLMULTI
IFLA_DEVLINK_PORT
IFLA_GSO_IPV4_MAX_SIZE
IFLA_GRO_IPV4_MAX_SIZE
IFLA_INFO_UNSPEC
IFLA_INFO_KIND
IFLA_INFO_DATA
@@ -1031,6 +1064,12 @@ IXANY
IXOFF
IXON
JFFS2_SUPER_MAGIC
KEXEC_ARCH_MASK
KEXEC_FILE_NO_INITRAMFS
KEXEC_FILE_ON_CRASH
KEXEC_FILE_UNLOAD
KEXEC_ON_CRASH
KEXEC_PRESERVE_CONTEXT
KEY_CNT
KEY_MAX
LC_ADDRESS
@@ -1163,9 +1202,21 @@ MCAST_MSFILTER
MCAST_UNBLOCK_SOURCE
MCL_CURRENT
MCL_FUTURE
MEMBARRIER_CMD_GLOBAL
MEMBARRIER_CMD_GLOBAL_EXPEDITED
MEMBARRIER_CMD_QUERY
MEMBARRIER_CMD_PRIVATE_EXPEDITED
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ
MFD_ALLOW_SEALING
MFD_CLOEXEC
MFD_EXEC
MFD_HUGETLB
MFD_NOEXEC_SEAL
MINIX2_SUPER_MAGIC
MINIX2_SUPER_MAGIC2
MINIX_SUPER_MAGIC
@@ -1240,6 +1291,54 @@ MS_SYNCHRONOUS
MS_UNBINDABLE
NCCS
NCP_SUPER_MAGIC
NDA_CACHEINFO
NDA_DST
NDA_FDB_EXT_ATTRS
NDA_FLAGS_EXT
NDA_IFINDEX
NDA_LINK_NETNSID
NDA_LLADDR
NDA_MASTER
NDA_NDM_FLAGS_MASK
NDA_NDM_STATE_MASK
NDA_NH_ID
NDA_PORT
NDA_PROBES
NDA_PROTOCOL
NDA_SRC_VNI
NDA_UNSPEC
NDA_VLAN
NDA_VNI
NDTA_CONFIG
NDTA_GC_INTERVAL
NDTA_NAME
NDTA_PAD
NDTA_PARMS
NDTA_STATS
NDTA_THRESH1
NDTA_THRESH2
NDTA_THRESH3
NDTA_UNSPEC
NDTPA_ANYCAST_DELAY
NDTPA_APP_PROBES
NDTPA_BASE_REACHABLE_TIME
NDTPA_DELAY_PROBE_TIME
NDTPA_GC_STALETIME
NDTPA_IFINDEX
NDTPA_INTERVAL_PROBE_TIME_MS
NDTPA_LOCKTIME
NDTPA_MCAST_PROBES
NDTPA_MCAST_REPROBES
NDTPA_PAD
NDTPA_PROXY_DELAY
NDTPA_PROXY_QLEN
NDTPA_QUEUE_LEN
NDTPA_QUEUE_LENBYTES
NDTPA_REACHABLE_TIME
NDTPA_REFCNT
NDTPA_RETRANS_TIME
NDTPA_UCAST_PROBES
NDTPA_UNSPEC
NETLINK_ADD_MEMBERSHIP
NETLINK_AUDIT
NETLINK_BROADCAST_ERROR
@@ -1605,6 +1704,9 @@ NF_VERDICT_FLAG_QUEUE_BYPASS
NF_VERDICT_MASK
NF_VERDICT_QBITS
NF_VERDICT_QMASK
NFEA_ACTIVITY_NOTIFY
NFEA_DONT_REFRESH
NFEA_UNSPEC
NI_DGRAM
NI_MAXHOST
NI_MAXSERV
@@ -1630,6 +1732,7 @@ NLM_F_APPEND
NLM_F_ATOMIC
NLM_F_CREATE
NLM_F_DUMP
NLM_F_DUMP_FILTERED
NLM_F_DUMP_INTR
NLM_F_ECHO
NLM_F_EXCL
@@ -1639,6 +1742,25 @@ NLM_F_REPLACE
NLM_F_REQUEST
NLM_F_ROOT
NOFLSH
NTF_EXT_LEARNED
NTF_EXT_LOCKED
NTF_EXT_MANAGED
NTF_MASTER
NTF_OFFLOADED
NTF_PROXY
NTF_ROUTER
NTF_SELF
NTF_STICKY
NTF_USE
NUD_DELAY
NUD_FAILED
NUD_INCOMPLETE
NUD_NOARP
NUD_NONE
NUD_PERMANENT
NUD_PROBE
NUD_REACHABLE
NUD_STALE
OCRNL
OFDEL
OFILL
@@ -1647,6 +1769,8 @@ ONLCR
ONLRET
ONOCR
OPENPROM_SUPER_MAGIC
OPEN_TREE_CLOEXEC
OPEN_TREE_CLONE
OPOST
O_ACCMODE
O_APPEND
@@ -1798,6 +1922,7 @@ PTRACE_PEEKUSER
PTRACE_POKEDATA
PTRACE_POKETEXT
PTRACE_POKEUSER
PTRACE_SECCOMP_GET_METADATA
PTRACE_SETOPTIONS
PTRACE_SETSIGINFO
PTRACE_SINGLESTEP
@@ -2036,6 +2161,7 @@ SCHED_RR
SCM_CREDENTIALS
SCM_RIGHTS
SCM_TIMESTAMP
SCM_TIMESTAMPING
SECCOMP_FILTER_FLAG_LOG
SECCOMP_FILTER_FLAG_NEW_LISTENER
@@ -2117,7 +2243,44 @@ SIOCADDMULTI
SIOCADDRT
SIOCDARP
SIOCDELMULTI
SIOCGIFINDEX
SIOGIFINDEX
SIOCSIFPFLAGS
SIOCGIFPFLAGS
SIOCDIFADDR
SIOCSIFHWBROADCAST
SIOCGIFCOUNT
SIOCGIFBR
SIOCSIFBR
SIOCGIFTXQLEN
SIOCSIFTXQLEN
SIOCETHTOOL
SIOCGMIIPHY
SIOCGMIIREG
SIOCSMIIREG
SIOCWANDEV
SIOCOUTQNSD
SIOCGSKNS
SIOCADDDLCI
SIOCDELDLCI
SIOCGIFVLAN
SIOCSIFVLAN
SIOCBONDENSLAVE
SIOCBONDRELEASE
SIOCBONDSETHWADDR
SIOCBONDSLAVEINFOQUERY
SIOCBONDINFOQUERY
SIOCBONDCHANGEACTIVE
SIOCBRADDBR
SIOCBRDELBR
SIOCBRADDIF
SIOCBRDELIF
SIOCSHWTSTAMP
SIOCGHWTSTAMP
SIOCDEVPRIVATE
SIOCPROTOPRIVATE
SIOCDELRT
SIOCRTMSG
SIOCDRARP
SIOCGARP
SIOCGIFADDR
@@ -2126,6 +2289,7 @@ SIOCGIFCONF
SIOCGIFDSTADDR
SIOCGIFENCAP
SIOCGIFFLAGS
SIOCSIFNAME
SIOCGIFHWADDR
SIOCGIFMAP
SIOCGIFMEM
@@ -2163,6 +2327,21 @@ SOCK_RAW
SOCK_RDM
SOCK_SEQPACKET
SOCK_STREAM
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_RX_HARDWARE
SOF_TIMESTAMPING_RX_SOFTWARE
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_SYS_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_OPT_ID
SOF_TIMESTAMPING_TX_SCHED
SOF_TIMESTAMPING_TX_ACK
SOF_TIMESTAMPING_OPT_CMSG
SOF_TIMESTAMPING_OPT_TSONLY
SOF_TIMESTAMPING_OPT_STATS
SOF_TIMESTAMPING_OPT_PKTINFO
SOF_TIMESTAMPING_OPT_TX_SWHW
SOL_AAL
SOL_ALG
SOL_ATALK
@@ -2230,6 +2409,7 @@ SO_SNDBUFFORCE
SO_SNDLOWAT
SO_SNDTIMEO
SO_TIMESTAMP
SO_TIMESTAMPING
SO_TYPE
SPLICE_F_GIFT
SPLICE_F_MORE
@@ -2300,7 +2480,11 @@ SYS_finit_module
SYS_flistxattr
SYS_flock
SYS_fremovexattr
SYS_fsconfig
SYS_fsetxattr
SYS_fsmount
SYS_fsopen
SYS_fspick
SYS_fsync
SYS_futex
SYS_get_mempolicy
@@ -2338,6 +2522,9 @@ SYS_io_destroy
SYS_io_getevents
SYS_io_setup
SYS_io_submit
SYS_io_uring_enter
SYS_io_uring_register
SYS_io_uring_setup
SYS_ioctl
SYS_ioprio_get
SYS_ioprio_set
@@ -2364,6 +2551,7 @@ SYS_mlock
SYS_mlock2
SYS_mlockall
SYS_mount
SYS_move_mount
SYS_move_pages
SYS_mprotect
SYS_mq_getsetattr
@@ -2381,9 +2569,11 @@ SYS_name_to_handle_at
SYS_nanosleep
SYS_nfsservctl
SYS_open_by_handle_at
SYS_open_tree
SYS_openat
SYS_perf_event_open
SYS_personality
SYS_pidfd_send_signal
SYS_pipe2
SYS_pivot_root
SYS_pkey_alloc
@@ -2470,6 +2660,7 @@ SYS_signalfd4
SYS_socket
SYS_socketpair
SYS_splice
SYS_statx
SYS_swapoff
SYS_swapon
SYS_symlinkat
@@ -2967,6 +3158,7 @@ ff_trigger
fgetc
fgetpos
fgets
fgets_unlocked
fgetxattr
fileno
flistxattr
@@ -2982,6 +3174,7 @@ fprintf
fputc
fputs
fread
fread_unlocked
free
freeaddrinfo
freeifaddrs
@@ -3010,6 +3203,7 @@ ftruncate
ftruncate64
futimens
fwrite
fwrite_unlocked
gai_strerror
genlmsghdr
getaddrinfo
@@ -3069,10 +3263,16 @@ group
hostent
id_t
idtype_t
ifconf
ifreq
__c_anonymous_ifc_ifcu
__c_anonymous_ifr_ifru
__c_anonymous_ifru_map
if_indextoname
if_nametoindex
ifaddrs
in6_addr
in6_ifreq
in6_pktinfo
in6_rtmsg
in_addr
@@ -3156,6 +3356,7 @@ memalign
memchr
memcmp
memcpy
memmem
memmove
memrchr
memset
@@ -3240,8 +3441,10 @@ pthread_atfork
pthread_attr_destroy
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_getstacksize
pthread_attr_init
pthread_attr_setdetachstate
pthread_attr_setguardsize
pthread_attr_setstacksize
pthread_attr_t
pthread_barrierattr_destroy
@@ -3381,6 +3584,7 @@ sched_setparam
sched_setscheduler
sched_yield
seccomp_data
seccomp_metadata
seekdir
select
sem_close
@@ -3484,6 +3688,7 @@ strcasecmp
strcasestr
strcat
strchr
strchrnul
strcmp
strcoll
strcpy
@@ -3516,6 +3721,7 @@ swapoff
swapon
symlink
symlinkat
syncfs
syscall
sysconf
sysinfo
@@ -3604,3 +3810,7 @@ write
writev
dirname
basename
eventfd_read
eventfd_write
HUGETLB_FLAG_ENCODE_SHIFT
MAP_HUGE_SHIFT
+94 -39
View File
@@ -193,10 +193,10 @@ BUFSIZ
BUS_ADRALN
BUS_ADRERR
BUS_OBJERR
CCStatus
CCCryptorStatus
CCRandomGenerateBytes
CCRNGStatus
CCRandomGenerateBytes
CCStatus
CIGNORE
CLD_CONTINUED
CLD_DUMPED
@@ -245,6 +245,19 @@ COPYFILE_SECURITY
COPYFILE_SKIP
COPYFILE_START
COPYFILE_STAT
COPYFILE_STATE_BSIZE
COPYFILE_STATE_COPIED
COPYFILE_STATE_DST_BSIZE
COPYFILE_STATE_DST_FD
COPYFILE_STATE_DST_FILENAME
COPYFILE_STATE_QUARANTINE
COPYFILE_STATE_SRC_BSIZE
COPYFILE_STATE_SRC_FD
COPYFILE_STATE_SRC_FILENAME
COPYFILE_STATE_STATUS_CB
COPYFILE_STATE_STATUS_CTX
COPYFILE_STATE_XATTRNAME
COPYFILE_STATE_WAS_CLONED
COPYFILE_VERBOSE
COPYFILE_UNLINK
COPYFILE_XATTR
@@ -266,6 +279,7 @@ CTLFLAG_RD
CTLFLAG_RW
CTLFLAG_SECURE
CTLFLAG_WR
CTLIOCGINFO
CTLTYPE
CTLTYPE_INT
CTLTYPE_NODE
@@ -428,13 +442,16 @@ F_NOCACHE
F_NODIRECT
F_PEOFPOSMODE
F_PREALLOCATE
F_PUNCHHOLE
F_RDADVISE
F_RDAHEAD
F_RDLCK
F_SETOWN
F_SPECULATIVE_READ
F_TEST
F_THAW_FS
F_TLOCK
F_TRIM_ACTIVE_FILE
F_ULOCK
F_UNLCK
F_VOLPOSMODE
@@ -623,15 +640,17 @@ IPV6_HOPLIMIT
IPV6_JOIN_GROUP
IPV6_LEAVE_GROUP
IPV6_PKTINFO
IPV6_RECVHOPLIMIT
IPV6_RECVPKTINFO
IPV6_RECVTCLASS
IPV6_TCLASS
IP_HDRINCL
IP_BOUND_IF
IP_HDRINCL
IP_PKTINFO
IP_RECVDSTADDR
IP_RECVIF
IP_RECVTOS
IP_RECVTTL
IP_TOS
ITIMER_PROF
ITIMER_REAL
@@ -663,7 +682,6 @@ KERN_FAILURE
KERN_FILE
KERN_HOSTID
KERN_HOSTNAME
KERN_IPC
KERN_INSUFFICIENT_BUFFER_SIZE
KERN_INVALID_ADDRESS
KERN_INVALID_ARGUMENT
@@ -671,12 +689,13 @@ KERN_INVALID_HOST
KERN_INVALID_LEDGER
KERN_INVALID_MEMORY_CONTROL
KERN_INVALID_NAME
KERN_INVALID_POLICY
KERN_INVALID_OBJECT
KERN_INVALID_POLICY
KERN_INVALID_RIGHT
KERN_INVALID_SECURITY
KERN_INVALID_TASK
KERN_INVALID_RIGHT
KERN_INVALID_VALUE
KERN_IPC
KERN_JOB_CONTROL
KERN_KDBUFWAIT
KERN_KDCPUMAP
@@ -700,11 +719,11 @@ KERN_KDSET_TYPEFILTER
KERN_KDTHRMAP
KERN_KDWRITEMAP
KERN_KDWRITETR
KERN_LOGSIGEXIT
KERN_LOCK_OWNED
KERN_LOCK_OWNED_SELF
KERN_LOCK_SET_DESTROYED
KERN_LOCK_UNSTABLE
KERN_LOGSIGEXIT
KERN_LOW_PRI_DELAY
KERN_LOW_PRI_WINDOW
KERN_MAXFILES
@@ -766,9 +785,9 @@ KERN_SAFEBOOT
KERN_SAVED_IDS
KERN_SECURELVL
KERN_SEMAPHORE_DESTROYED
KERN_SUCCESS
KERN_SHREG_PRIVATIZABLE
KERN_SPECULATIVE_READS
KERN_SUCCESS
KERN_SUGID_COREDUMP
KERN_SYMFILE
KERN_SYSV
@@ -1258,8 +1277,8 @@ SAE_ASSOCID_ANY
SAE_CONNID_ALL
SAE_CONNID_ANY
SCALE_PPM
SCHED_OTHER
SCHED_FIFO
SCHED_OTHER
SCHED_RR
SCM_CREDS
SCM_RIGHTS
@@ -1347,6 +1366,7 @@ TAB1
TAB2
TAB3
TABDLY
TCP_CONNECTION_INFO
TCP_FASTOPEN
TCP_KEEPALIVE
TCP_KEEPCNT
@@ -1355,12 +1375,12 @@ TCP_MAXSEG
TCP_NOOPT
TCP_NOPUSH
THOUSEP
THREAD_BACKGROUND_POLICY
THREAD_BACKGROUND_POLICY_DARWIN_BG
THREAD_BACKGROUND_POLICY_COUNT
THREAD_AFFINITY_POLICY
THREAD_AFFINITY_POLICY_COUNT
THREAD_AFFINITY_TAG_NULL
THREAD_BACKGROUND_POLICY
THREAD_BACKGROUND_POLICY_COUNT
THREAD_BACKGROUND_POLICY_DARWIN_BG
THREAD_BASIC_INFO
THREAD_BASIC_INFO_COUNT
THREAD_EXTENDED_INFO
@@ -1657,10 +1677,10 @@ XATTR_SHOWCOMPRESSION
XUCRED_VERSION
YESEXPR
YESSTR
_CS_PATH
_CS_DARWIN_USER_CACHE_DIR
_CS_DARWIN_USER_DIR
_CS_DARWIN_USER_TEMP_DIR
_CS_DARWIN_USER_CACHE_DIR
_CS_PATH
_IOFBF
_IOLBF
_IONBF
@@ -1728,8 +1748,8 @@ _SC_PRIORITY_SCHEDULING
_SC_RAW_SOCKETS
_SC_READER_WRITER_LOCKS
_SC_REALTIME_SIGNALS
_SC_RE_DUP_MAX
_SC_REGEXP
_SC_RE_DUP_MAX
_SC_RTSIG_MAX
_SC_SAVED_IDS
_SC_SEMAPHORES
@@ -1818,6 +1838,8 @@ arc4random
arc4random_buf
arc4random_uniform
arphdr
asctime
asctime_r
attrgroup_t
attribute_set_t
attrlist
@@ -1827,6 +1849,7 @@ backtrace_from_fp
backtrace_image_offsets
backtrace_symbols
backtrace_symbols_fd
basename
boolean_t
bpf_hdr
brk
@@ -1841,11 +1864,20 @@ cmsghdr
confstr
connectx
copyfile
copyfile_callback_t
copyfile_flags_t
copyfile_state_alloc
copyfile_state_free
copyfile_state_get
copyfile_state_set
cpu_subtype_t
cpu_type_t
ctime
ctime_r
ctl_info
difftime
dirfd
dirname
disconnectx
dqblk
duplocale
@@ -1854,6 +1886,7 @@ endpwent
endservent
endutxent
exchangedata
execvP
faccessat
fchdir
fchflags
@@ -1865,21 +1898,27 @@ flistxattr
fmemopen
fmount
forkpty
fpunchhole_t
freadlink
freeifaddrs
freelocale
fremovexattr
fsetattrlist
fsetxattr
fsid_t
fspecread_t
fstatfs
fstore_t
ftok
ftrimactivefile_t
futimes
getattrlist
getattrlistat
getattrlistbulk
getdate
getdomainname
getdtablesize
getentropy
getfsstat
getgrent
getgrgid
@@ -1923,6 +1962,9 @@ if_freenameindex
if_msghdr
if_nameindex
ifaddrs
ifconf
ifkpi
ifreq
image_offset
in6_pktinfo
in_pktinfo
@@ -1978,15 +2020,17 @@ malloc_zone_t
malloc_zone_valloc
max_align_t
mcontext_t
memory_object_t
mem_entry_name_port_t
memory_object_offset_t
memory_object_t
memset_pattern16
memset_pattern4
memset_pattern8
memset_pattern16
memset_s
mem_entry_name_port_t
mincore
mkdirat
mkfifoat
mknodat
mkstemps
mount
msghdr
@@ -2004,21 +2048,21 @@ openat
openpty
os_log_create
os_log_t
os_log_type_t
os_log_type_enabled
os_log_type_t
os_signpost_enabled
os_signpost_id_generate
os_signpost_id_make_with_pointer
os_signpost_id_t
os_signpost_type_t
os_unfair_lock
os_unfair_lock_assert_not_owner
os_unfair_lock_assert_owner
os_unfair_lock_lock
os_unfair_lock_s
os_unfair_lock_t
os_unfair_lock_lock
os_unfair_lock_trylock
os_unfair_lock_unlock
os_unfair_lock_assert_owner
os_unfair_lock_assert_not_owner
pause
policy_t
popen
@@ -2031,37 +2075,41 @@ posix_spawn_file_actions_destroy
posix_spawn_file_actions_init
posix_spawn_file_actions_t
posix_spawnattr_destroy
posix_spawnattr_get_qos_class_np
posix_spawnattr_getarchpref_np
posix_spawnattr_getflags
posix_spawnattr_getpgroup
posix_spawnattr_getsigdefault
posix_spawnattr_getsigmask
posix_spawnattr_init
posix_spawnattr_set_qos_class_np
posix_spawnattr_setarchpref_np
posix_spawnattr_setflags
posix_spawnattr_setpgroup
posix_spawnattr_setsigdefault
posix_spawnattr_setsigmask
posix_spawnattr_getbinpref_np
posix_spawnattr_setbinpref_np
posix_spawnattr_t
posix_spawnp
preadv
proc_bsdinfo
proc_kmsgbuf
proc_libversion
proc_listallpids
proc_listchildpids
proc_listpgrppids
proc_listpids
proc_libversion
proc_name
proc_pidinfo
proc_pidfdinfo
proc_pidfileportinfo
proc_pidinfo
proc_pidpath
proc_regionfilename
proc_set_no_smt
proc_setthread_no_smt
proc_set_csm
proc_set_no_smt
proc_setthread_csm
proc_setthread_no_smt
proc_taskallinfo
proc_taskinfo
proc_threadinfo
@@ -2072,32 +2120,34 @@ pseudo_AF_RTIP
pseudo_AF_XTP
pthread_attr_getschedparam
pthread_attr_setschedparam
pthread_cancel
pthread_condattr_getpshared
pthread_condattr_setpshared
pthread_cpu_number_np
pthread_create_from_mach_thread
pthread_from_mach_thread_np
pthread_get_stackaddr_np
pthread_get_stacksize_np
pthread_getname_np
pthread_getschedparam
pthread_introspection_getspecific_np
pthread_introspection_hook_t
pthread_introspection_hook_install
pthread_introspection_hook_t
pthread_introspection_setspecific_np
pthread_jit_write_callback_t
pthread_jit_write_freeze_callbacks_np
pthread_jit_write_protect_np
pthread_jit_write_protect_supported_np
pthread_jit_write_with_callback_np
pthread_setschedparam
pthread_cancel
pthread_condattr_getpshared
pthread_condattr_setpshared
pthread_from_mach_thread_np
pthread_get_stackaddr_np
pthread_get_stacksize_np
pthread_getname_np
pthread_kill
pthread_main_np
pthread_mutexattr_getpshared
pthread_mutexattr_setpshared
pthread_rwlockattr_getpshared
pthread_rwlockattr_setpshared
pthread_setname_np
pthread_setschedparam
pthread_stack_frame_decode_np
ptrace
pututxline
pwritev
@@ -2166,6 +2216,7 @@ shmid_ds
sigaltstack
sigevent
siginfo_t
sigsuspend
sigwait
sockaddr_ctl
sockaddr_dl
@@ -2175,8 +2226,11 @@ stack_t
statfs
strcasecmp
strcasestr
strftime
strftime_l
strncasecmp
strndup
strptime
strsignal
strtonum
sync
@@ -2194,6 +2248,7 @@ task_info
task_inspect_t
task_terminate
task_threads
tcp_connection_info
telldir
thread_basic_info_t
thread_extended_info_t
@@ -2202,11 +2257,11 @@ thread_identifier_info_t
thread_info
thread_info_t
thread_inspect_t
thread_policy_set
thread_policy_get
thread_policy_set
time_value_t
timeval32
timex
time_value_t
truncate
ttyname_r
ucontext_t
@@ -2216,6 +2271,8 @@ uselocale
utimensat
utmpx
utmpxname
vm_allocate
vm_deallocate
vm_inherit_t
vm_map_t
vm_prot_t
@@ -2227,5 +2284,3 @@ wait4
waitid
xsw_usage
xucred
dirname
basename
+39
View File
@@ -269,6 +269,7 @@ EV_ENABLE
EV_EOF
EV_ERROR
EV_FLAG1
EV_HUP
EV_NODATA
EV_ONESHOT
EV_RECEIPT
@@ -502,6 +503,12 @@ IP_TOS
ITIMER_PROF
ITIMER_REAL
ITIMER_VIRTUAL
KENV_GET
KENV_SET
KENV_UNSET
KENV_DUMP
KENV_MNAMELEN
KENV_MVALLEN
KERN_ARGMAX
KERN_BOOTFILE
KERN_BOOTTIME
@@ -795,6 +802,25 @@ Q_SETQUOTA
Q_SYNC
RADIXCHAR
RAND_MAX
RB_ASKNAME
RB_SINGLE
RB_NOSYNC
RB_HALT
RB_INITNAME
RB_DFLTROOT
RB_KDB
RB_RDONLY
RB_DUMP
RB_MINIROOT
RB_VERBOSE
RB_SERIAL
RB_CDROM
RB_POWEROFF
RB_GDB
RB_MUTE
RB_SELFTEST
RB_PAUSE
RB_VIDEO
REG_ASSERT
REG_ATOI
REG_BACKR
@@ -1237,6 +1263,7 @@ chroot
clearerr
clock_getcpuclockid
clock_getres
clock_nanosleep
clock_settime
cmsgcred
cmsghdr
@@ -1261,6 +1288,8 @@ eui64_aton
eui64_hostton
eui64_ntoa
eui64_ntohost
exect
execvP
exit_status
explicit_bzero
faccessat
@@ -1292,6 +1321,8 @@ getitimer
getlastlogx
getline
getloadavg
getmntinfo
getmntvinfo
getnameinfo
getopt_long
getpeereid
@@ -1357,6 +1388,7 @@ lutimes
lwp_rtprio
lwpid_t
madvise
malloc_usable_size
mcontext_t
memmem
memrchr
@@ -1410,6 +1442,7 @@ pseudo_AF_XTP
pthread_attr_get_np
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_setguardsize
pthread_barrierattr_destroy
pthread_barrierattr_getpshared
pthread_barrierattr_init
@@ -1423,6 +1456,7 @@ pthread_condattr_getpshared
pthread_condattr_setclock
pthread_condattr_setpshared
pthread_get_name_np
pthread_getname_np
pthread_getcpuclockid
pthread_kill
pthread_main_np
@@ -1432,6 +1466,7 @@ pthread_mutexattr_setpshared
pthread_rwlockattr_getpshared
pthread_rwlockattr_setpshared
pthread_set_name_np
pthread_setname_np
pthread_spin_destroy
pthread_spin_init
pthread_spin_lock
@@ -1483,6 +1518,7 @@ setgroups
sethostid
sethostname
setitimer
setlogin
setpriority
setproctitle
setprogname
@@ -1502,6 +1538,7 @@ shmget
sigaltstack
sigevent
siginfo_t
sigsuspend
sigtimedwait
sigwait
sigwaitinfo
@@ -1512,6 +1549,8 @@ stack_t
statfs
strcasecmp
strcasestr
strftime
strftime_l
strncasecmp
strndup
strsignal
+2
View File
@@ -0,0 +1,2 @@
getentropy
posix_fallocate64
+289 -1
View File
@@ -84,21 +84,29 @@ ATF_PERM
ATF_PUBL
ATF_USETRAILERS
AT_BASE
AT_CANARY
AT_EACCESS
AT_EGID
AT_EMPTY_PATH
AT_ENTRY
AT_EUID
AT_EXECPATH
AT_FDCWD
AT_FLAGS
AT_GID
AT_HWCAP
AT_HWCAP2
AT_NCPUS
AT_NOTELF
AT_NULL
AT_OSRELDATE
AT_PAGESIZES
AT_PAGESZ
AT_PHDR
AT_PHENT
AT_PHNUM
AT_REMOVEDIR
AT_RESOLVE_BENEATH
AT_SYMLINK_FOLLOW
AT_SYMLINK_NOFOLLOW
AT_UID
@@ -147,10 +155,13 @@ CLD_EXITED
CLD_KILLED
CLD_STOPPED
CLD_TRAPPED
CLOCK_BOOTTIME
CLOCK_MONOTONIC_COARSE
CLOCK_MONOTONIC_FAST
CLOCK_MONOTONIC_PRECISE
CLOCK_PROCESS_CPUTIME_ID
CLOCK_PROF
CLOCK_REALTIME_COARSE
CLOCK_REALTIME_FAST
CLOCK_REALTIME_PRECISE
CLOCK_SECOND
@@ -302,6 +313,9 @@ EV_ENABLE
EV_EOF
EV_ERROR
EV_FLAG1
EV_FLAG2
EV_FORCEONESHOT
EV_KEEPUDATA
EV_ONESHOT
EV_RECEIPT
EV_SYSFLAGS
@@ -578,6 +592,14 @@ JAIL_SYS_DISABLE
JAIL_SYS_INHERIT
JAIL_SYS_NEW
JAIL_UPDATE
KENV_GET
KENV_SET
KENV_UNSET
KENV_DUMP
KENV_DUMP_LOADER
KENV_DUMP_STATIC
KENV_MNAMELEN
KENV_MVALLEN
KERN_ARGMAX
KERN_ARND
KERN_BOOTFILE
@@ -697,6 +719,10 @@ MALLOCX_ARENA
MALLOCX_ALIGN
MALLOCX_TCACHE
MALLOCX_ZERO
MAP_ALIGNED
MAP_ALIGNED_SUPER
MAP_ALIGNMENT_MASK
MAP_ALIGNMENT_SHIFT
MAP_COPY
MAP_EXCL
MAP_FILE
@@ -769,6 +795,7 @@ MSG_NBIO
MSG_NOERROR
MSG_NOSIGNAL
MSG_NOTIFICATION
MSG_WAITFORONE
NANOSECOND
NETGRAPHDISC
NET_RT_DUMP
@@ -786,8 +813,11 @@ NI_NUMERICSERV
NOEXPR
NOKERNINFO
NOSTR
NOTE_ABSTIME
NOTE_ATTRIB
NOTE_CHILD
NOTE_CLOSE
NOTE_CLOSE_WRITE
NOTE_DELETE
NOTE_EXEC
NOTE_EXIT
@@ -798,13 +828,16 @@ NOTE_FFCTRLMASK
NOTE_FFLAGSMASK
NOTE_FFNOP
NOTE_FFOR
NOTE_FILE_POLL
NOTE_FORK
NOTE_LINK
NOTE_LOWAT
NOTE_MSECONDS
NOTE_NSECONDS
NOTE_OPEN
NOTE_PCTRLMASK
NOTE_PDATAMASK
NOTE_READ
NOTE_RENAME
NOTE_REVOKE
NOTE_SECONDS
@@ -819,14 +852,20 @@ ONOEOT
OXTABS
O_ASYNC
O_DIRECT
O_DSYNC
O_EMPTY_PATH
O_EXEC
O_EXLOCK
O_FSYNC
O_NDELAY
O_NOCTTY
O_PATH
O_RESOLVE_BENEATH
O_SEARCH
O_SHLOCK
O_SYNC
O_TTY_INIT
O_VERIFY
PD_ALLOWED_AT_FORK
PD_CLOEXEC
PD_DAEMON
@@ -933,6 +972,8 @@ PROC_WX_MAPPINGS_PERMIT
PROC_WXMAP_CTL
PROC_WXMAP_STATUS
PROC_WXORX_ENFORCE
PROT_MAX
PROT_MAX_EXTRACT
PTHREAD_CREATE_DETACHED
PTHREAD_CREATE_JOINABLE
PTHREAD_MUTEX_ADAPTIVE_NP
@@ -970,6 +1011,7 @@ PT_LWP_EVENTS
PT_READ_D
PT_READ_I
PT_RESUME
PT_SC_REMOTE
PT_SETDBREGS
PT_SETFPREGS
PT_SETREGS
@@ -996,6 +1038,28 @@ Q_SETQUOTA
Q_SYNC
RADIXCHAR
RAND_MAX
RB_ASKNAME
RB_SINGLE
RB_NOSYNC
RB_HALT
RB_INITNAME
RB_DFLTROOT
RB_KDB
RB_RDONLY
RB_DUMP
RB_MINIROOT
RB_VERBOSE
RB_SERIAL
RB_CDROM
RB_POWEROFF
RB_GDB
RB_MUTE
RB_SELFTEST
RB_PAUSE
RB_REROOT
RB_POWERCYCLE
RB_PROBE
RB_MULTIPLE
REG_ASSERT
REG_ATOI
REG_BACKR
@@ -1036,6 +1100,7 @@ RFLINUXTHPN
RFMEM
RFNOWAIT
RFPROC
RFSIGSHARE
RFSPAWN
RFTHREAD
RFTSIGZMB
@@ -1075,9 +1140,148 @@ SCALE_PPM
SCHED_FIFO
SCHED_OTHER
SCHED_RR
SCM_CREDS
SCM_RIGHTS
SCM_TIMESTAMP
SCM_CREDS
SCM_BINTIME
SCM_REALTIME
SCM_MONOTONIC
SCM_TIME_INFO
SCM_CREDS2
SCTP_ACTIVE
SCTP_ALL_ASSOC
SCTP_ADAPTATION_LAYER
SCTP_ADAPTION_LAYER
SCTP_ADDR_ADDED
SCTP_ADDR_AVAILABLE
SCTP_ADDR_CONFIRMED
SCTP_ADDR_MADE_PRIM
SCTP_ADDR_REMOVED
SCTP_ADDR_UNREACHABLE
SCTP_ADDR_OVER
SCTP_ASCONF_SUPPORTED
SCTP_ASSOCINFO
SCTP_ASSOC_RESET_DENIED
SCTP_ASSOC_RESET_FAILED
SCTP_ASSOC_SUPPORTS_ASCONF
SCTP_ASSOC_SUPPORTS_AUTH
SCTP_ASSOC_SUPPORTS_INTERLEAVING
SCTP_ASSOC_SUPPORTS_MAX
SCTP_ASSOC_SUPPORTS_MULTIBUF
SCTP_ASSOC_SUPPORTS_PR
SCTP_ASSOC_SUPPORTS_RE_CONFIG
SCTP_AUTHINFO
SCTP_AUTH_CHUNK
SCTP_AUTH_ACTIVE_KEY
SCTP_AUTH_DEACTIVATE_KEY
SCTP_AUTH_DELETE_KEY
SCTP_AUTH_FREE_KEY
SCTP_AUTH_KEY
SCTP_AUTH_NEWKEY
SCTP_AUTH_NEW_KEY
SCTP_AUTH_NO_AUTH
SCTP_AUTH_SUPPORTED
SCTP_AUTOCLOSE
SCTP_AUTO_ASCONF
SCTP_CANT_STR_ASSOC
SCTP_COMM_LOST
SCTP_COMM_UP
SCTP_COMPLETE
SCTP_CONTEXT
SCTP_CURRENT_ASSOC
SCTP_DATA_SENT
SCTP_DATA_UNSENT
SCTP_DEFAULT_PRINFO
SCTP_DEFAULT_SEND_PARAM
SCTP_DEFAULT_SNDINFO
SCTP_DELAYED_SACK
SCTP_DISABLE_FRAGMENTS
SCTP_DSTADDRV4
SCTP_DSTADDRV6
SCTP_ECN_SUPPORTED
SCTP_EOF
SCTP_EOR
SCTP_EVENT
SCTP_EVENTS
SCTP_EXPLICIT_EOR
SCTP_EXTRCV
SCTP_FRAGMENT_INTERLEAVE
SCTP_FUTURE_ASSOC
SCTP_GET_ASSOC_ID_LIST
SCTP_GET_ASSOC_NUMBER
SCTP_GET_PEER_ADDR_INFO
SCTP_HMAC_IDENT
SCTP_INACTIVE
SCTP_INIT
SCTP_INITMSG
SCTP_I_WANT_MAPPED_V4_ADDR
SCTP_LOCAL_AUTH_CHUNKS
SCTP_MAXBURST
SCTP_MAX_BURST
SCTP_MAX_CWND
SCTP_MAXSEG
SCTP_NEXT_MSG_AVAIL
SCTP_NEXT_MSG_ISCOMPLETE
SCTP_NEXT_MSG_IS_NOTIFICATION
SCTP_NEXT_MSG_IS_UNORDERED
SCTP_NODELAY
SCTP_NOTIFICATION
SCTP_NO_NEXT_MSG
SCTP_NRSACK_SUPPORTED
SCTP_NXTINFO
SCTP_PARTIAL_DELIVERY_ABORTED
SCTP_PARTIAL_DELIVERY_POINT
SCTP_PEER_ADDR_PARAMS
SCTP_PEER_ADDR_THLDS
SCTP_PEER_AUTH_CHUNKS
SCTP_PKTDROP_SUPPORTED
SCTP_PRIMARY_ADDR
SCTP_PR_ASSOC_STATUS
SCTP_PR_SCTP_ALL
SCTP_PR_SCTP_BUF
SCTP_PR_SCTP_MAX
SCTP_PR_SCTP_NONE
SCTP_PR_SCTP_PRIO
SCTP_PR_SCTP_RTX
SCTP_PR_SCTP_TTL
SCTP_PR_STREAM_STATUS
SCTP_REMOTE_UDP_ENCAPS_PORT
SCTP_RESTART
SCTP_REUSE_PORT
SCTP_PRINFO
SCTP_RECONFIG_SUPPORTED
SCTP_RECVNXTINFO
SCTP_RECVRCVINFO
SCTP_RECVV_NOINFO
SCTP_RECVV_NXTINFO
SCTP_RECVV_RCVINFO
SCTP_RECVV_RN
SCTP_RTOINFO
SCTP_SACK_IMMEDIATELY
SCTP_SENDALL
SCTP_SENDV_AUTHINFO
SCTP_SENDV_NOINFO
SCTP_SENDV_PRINFO
SCTP_SENDV_SNDINFO
SCTP_SENDV_SPA
SCTP_SEND_AUTHINFO_VALID
SCTP_SEND_PRINFO_VALID
SCTP_SEND_SNDINFO_VALID
SCTP_SET_PEER_PRIMARY_ADDR
SCTP_SHUTDOWN_COMP
SCTP_SNDINFO
SCTP_SNDRCV
SCTP_STATUS
SCTP_STREAM_CHANGE_DENIED
SCTP_STREAM_CHANGE_FAILED
SCTP_STREAM_RESET_DENIED
SCTP_STREAM_RESET_FAILED
SCTP_STREAM_RESET_INCOMING_SSN
SCTP_STREAM_RESET_OUTGOING_SSN
SCTP_TIMEOUTS
SCTP_UNCONFIRMED
SCTP_UNORDERED
SCTP_USE_EXT_RCVINFO
SEEK_DATA
SEEK_HOLE
SEM_FAILED
@@ -1110,7 +1314,10 @@ SIGEV_THREAD
SIGEV_THREAD_ID
SIGINFO
SIGIO
SIGLIBRT
SIGLWP
SIGSTKSZ
SIGTHR
SIOCGIFADDR
SLIPDISC
SOCKCREDSIZE
@@ -1136,6 +1343,13 @@ SO_REUSEPORT
SO_REUSEPORT_LB
SO_SETFIB
SO_TIMESTAMP
SO_TS_CLOCK
SO_TS_REALTIME_MICRO
SO_TS_BINTIME
SO_TS_REALTIME
SO_TS_MONOTONIC
SO_TS_DEFAULT
SO_TS_CLOCK_MAX
SO_USELOOPBACK
SO_USER_COOKIE
SO_VENDOR
@@ -1559,6 +1773,8 @@ eui64_aton
eui64_hostton
eui64_ntoa
eui64_ntohost
exect
execvP
explicit_bzero
extattr_delete_fd
extattr_delete_file
@@ -1745,6 +1961,12 @@ pause
pdfork
pdgetpid
pdkill
pidfh
pidfile_close
pidfile_fileno
pidfile_open
pidfile_remove
pidfile_write
pipe2
popen
posix_fadvise
@@ -1793,6 +2015,7 @@ pseudo_AF_XTP
pthread_attr_get_np
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_setguardsize
pthread_barrierattr_destroy
pthread_barrierattr_getpshared
pthread_barrierattr_init
@@ -1807,6 +2030,7 @@ pthread_condattr_getpshared
pthread_condattr_setclock
pthread_condattr_setpshared
pthread_get_name_np
pthread_getname_np
pthread_getaffinity_np
pthread_getcpuclockid
pthread_getthreadid_np
@@ -1822,6 +2046,7 @@ pthread_rwlockattr_getpshared
pthread_rwlockattr_setpshared
pthread_setaffinity_np
pthread_set_name_np
pthread_setname_np
pthread_getschedparam
pthread_setschedparam
pthread_spin_destroy
@@ -1833,6 +2058,7 @@ pthread_spinlock_t
ptrace
ptrace_io_desc
ptrace_lwpinfo
ptrace_sc_remote
ptrace_sc_ret
ptrace_vm_entry
ptsname_r
@@ -1868,6 +2094,58 @@ sched_param
sched_rr_get_interval
sched_setparam
sched_setscheduler
sctphdr
sctp_adaptation_event
sctp_assoc_change
sctp_assoc_t
sctp_authinfo
sctp_bindx
sctp_chunkhdr
sctp_connectx
sctp_default_prinfo
sctp_error_auth_invalid_hmac
sctp_error_cause
sctp_error_invalid_stream
sctp_error_missing_param
sctp_error_no_user_data
sctp_error_out_of_resource
sctp_error_stale_cookie
sctp_error_unrecognized_chunk
sctp_error_unresolv_addr
sctp_event
sctp_event_subscribe
sctp_extrcvinfo
sctp_freepaddrs
sctp_freeladdrs
sctp_getaddrlen
sctp_getladdrs
sctp_getpaddrs
sctp_gen_error_cause
sctp_initmsg
sctp_nxtinfo
sctp_opt_info
sctp_paddr_change
sctp_pdapi_event
sctp_peeloff
sctp_prinfo
sctp_rcvinfo
sctp_recvv
sctp_recvv_rn
sctp_remote_error
sctp_sender_dry_event
sctp_send_failed_event
sctp_sendv
sctp_sendv_spa
sctp_shutdown_event
sctp_sndinfo
sctp_sndrcvinfo
sctp_snd_all_completes
sctp_stream_change_event
sctp_stream_reset_event
sctp_paramhdr
sctp_pcbinfo
sctp_setadaptation
sctp_sockstat
sdallocx
seed48
seekdir
@@ -1893,6 +2171,7 @@ setgroups
sethostid
sethostname
setitimer
setlogin
setpriority
setproctitle
setprogname
@@ -1913,6 +2192,7 @@ shmid_ds
sigaltstack
sigevent
siginfo_t
sigsuspend
sigtimedwait
sigwait
sigwaitinfo
@@ -1924,6 +2204,9 @@ stack_t
statfs
strcasecmp
strcasestr
strchrnul
strftime
strftime_l
strncasecmp
strndup
strsignal
@@ -1934,6 +2217,7 @@ sysctlbyname
sysctlnametomib
tcp_fastopen
tcp_function_set
tcp_info
telldir
thr_kill
thr_kill2
@@ -1963,3 +2247,7 @@ xucred
eaccess
dirname
basename
closefrom
close_range
eventfd_read
eventfd_write
+84
View File
@@ -256,7 +256,85 @@ ERFKILL
ESOCKTNOSUPPORT
ESRMNT
ESTRPIPE
ETH_P_LOOP
ETH_P_PUP
ETH_P_PUPAT
ETH_P_IP
ETH_P_X25
ETH_P_ARP
ETH_P_BPQ
ETH_P_IEEEPUP
ETH_P_IEEEPUPAT
ETH_P_BATMAN
ETH_P_DEC
ETH_P_DNA_DL
ETH_P_DNA_RC
ETH_P_DNA_RT
ETH_P_LAT
ETH_P_DIAG
ETH_P_CUST
ETH_P_SCA
ETH_P_TEB
ETH_P_RARP
ETH_P_ATALK
ETH_P_AARP
ETH_P_8021Q
ETH_P_IPX
ETH_P_IPV6
ETH_P_PAUSE
ETH_P_SLOW
ETH_P_WCCP
ETH_P_MPLS_UC
ETH_P_MPLS_MC
ETH_P_ATMMPOA
ETH_P_PPP_DISC
ETH_P_PPP_SES
ETH_P_LINK_CTL
ETH_P_ATMFATE
ETH_P_PAE
ETH_P_AOE
ETH_P_8021AD
ETH_P_802_EX1
ETH_P_TIPC
ETH_P_8021AH
ETH_P_MVRP
ETH_P_1588
ETH_P_PRP
ETH_P_FCOE
ETH_P_TDLS
ETH_P_FIP
ETH_P_80221
ETH_P_LOOPBACK
ETH_P_QINQ1
ETH_P_QINQ2
ETH_P_QINQ3
ETH_P_EDSA
ETH_P_AF_IUCV
ETH_P_802_3_MIN
ETH_P_802_3
ETH_P_AX25
ETH_P_ALL
ETH_P_802_2
ETH_P_SNAP
ETH_P_DDCMP
ETH_P_WAN_PPP
ETH_P_PPP_MP
ETH_P_LOCALTALK
ETH_P_CAN
ETH_P_CANFD
ETH_P_PPPTALK
ETH_P_TR_802_2
ETH_P_MOBITEX
ETH_P_CONTROL
ETH_P_IRDA
ETH_P_ECONET
ETH_P_HDLC
ETH_P_ARCNET
ETH_P_DSA
ETH_P_TRAILER
ETH_P_PHONET
ETH_P_IEEE802154
ETH_P_CAIF
ETIME
ETOOMANYREFS
EUCLEAN
@@ -671,6 +749,7 @@ PR_SET_NAME
PR_SET_NO_NEW_PRIVS
PR_SET_PDEATHSIG
PR_SET_PTRACER
PR_SET_PTRACER_ANY
PR_SET_SECCOMP
PR_SET_SECUREBITS
PR_SET_THP_DISABLE
@@ -1293,12 +1372,15 @@ ppoll
preadv
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_setguardsize
pthread_cancel
pthread_condattr_getclock
pthread_condattr_setclock
pthread_getattr_np
pthread_getname_np
pthread_kill
pthread_mutex_timedlock
pthread_setname_np
ptsname_r
pwritev
quotactl
@@ -1392,3 +1474,5 @@ utimensat
vhangup
vmsplice
waitid
HUGETLB_FLAG_ENCODE_SHIFT
MAP_HUGE_SHIFT
@@ -0,0 +1,6 @@
PTRACE_GETFPREGS
PTRACE_SETFPREGS
PTRACE_GETFPXREGS
PTRACE_SETFPXREGS
PTRACE_GETREGS
PTRACE_SETREGS
+59 -18
View File
@@ -31,25 +31,11 @@ BPF_FS_MAGIC
BTRFS_SUPER_MAGIC
CGROUP2_SUPER_MAGIC
CGROUP_SUPER_MAGIC
CLONE_NEWTIME
CLONE_CLEAR_SIGHAND
CLONE_INTO_CGROUP
CODA_SUPER_MAGIC
CRAMFS_MAGIC
DCCP_SERVICE_LIST_MAX_LEN
DCCP_SOCKOPT_AVAILABLE_CCIDS
DCCP_SOCKOPT_CCID
DCCP_SOCKOPT_CCID_RX_INFO
DCCP_SOCKOPT_CCID_TX_INFO
DCCP_SOCKOPT_CHANGE_L
DCCP_SOCKOPT_CHANGE_R
DCCP_SOCKOPT_GET_CUR_MPS
DCCP_SOCKOPT_PACKET_SIZE
DCCP_SOCKOPT_QPOLICY_ID
DCCP_SOCKOPT_QPOLICY_TXQLEN
DCCP_SOCKOPT_RECV_CSCOV
DCCP_SOCKOPT_RX_CCID
DCCP_SOCKOPT_SEND_CSCOV
DCCP_SOCKOPT_SERVER_TIMEWAIT
DCCP_SOCKOPT_SERVICE
DCCP_SOCKOPT_TX_CCID
DEAD_PROCESS
DEBUGFS_MAGIC
DEVPTS_SUPER_MAGIC
@@ -68,6 +54,13 @@ FUTEXFS_SUPER_MAGIC
GENL_ID_PMCRAID
GENL_ID_VFS_DQUOT
GENL_UNS_ADMIN_PERM
GLOB_ALTDIRFUNC
GLOB_BRACE
GLOB_NOMAGIC
GLOB_ONLYDIR
GLOB_PERIOD
GLOB_TILDE
GLOB_TILDE_CHECK
HOSTFS_SUPER_MAGIC
HPFS_SUPER_MAGIC
HUGETLBFS_MAGIC
@@ -128,6 +121,7 @@ LM_ID_BASE
LM_ID_NEWLM
LOGIN_PROCESS
Lmid_t
MADV_COLLAPSE
MAXTC
MAX_LINKS
MINIX2_SUPER_MAGIC
@@ -146,6 +140,14 @@ MOD_OFFSET
MOD_STATUS
MOD_TAI
MOD_TIMECONST
MOVE_MOUNT_BENEATH
MOVE_MOUNT_F_AUTOMOUNTS
MOVE_MOUNT_F_EMPTY_PATH
MOVE_MOUNT_F_SYMLINKS
MOVE_MOUNT_SET_GROUP
MOVE_MOUNT_T_AUTOMOUNTS
MOVE_MOUNT_T_EMPTY_PATH
MOVE_MOUNT_T_SYMLINKS
MPOL_BIND
MPOL_DEFAULT
MPOL_F_NUMA_BALANCING
@@ -362,6 +364,10 @@ PR_SET_VMA_ANON_NAME
PROC_SUPER_MAGIC
PTHREAD_MUTEX_ADAPTIVE_NP
PTRACE_GET_SYSCALL_INFO
PTRACE_SYSCALL_INFO_ENTRY
PTRACE_SYSCALL_INFO_EXIT
PTRACE_SYSCALL_INFO_NONE
PTRACE_SYSCALL_INFO_SECCOMP
QNX4_SUPER_MAGIC
QNX6_SUPER_MAGIC
RDTGROUP_SUPER_MAGIC
@@ -431,6 +437,7 @@ STATX_BASIC_STATS
STATX_BLOCKS
STATX_BTIME
STATX_CTIME
STATX_DIOALIGN
STATX_GID
STATX_INO
STATX_MNT_ID
@@ -479,6 +486,29 @@ UDF_SUPER_MAGIC
UNAME26
USBDEVICE_SUPER_MAGIC
USER_PROCESS
XDP_SHARED_UMEM
XDP_COPY
XDP_ZEROCOPY
XDP_USE_NEED_WAKEUP
XDP_USE_SG
XDP_UMEM_UNALIGNED_CHUNK_FLAG
XDP_RING_NEED_WAKEUP
XDP_MMAP_OFFSETS
XDP_RX_RING
XDP_TX_RING
XDP_UMEM_REG
XDP_UMEM_FILL_RING
XDP_UMEM_COMPLETION_RING
XDP_STATISTICS
XDP_OPTIONS
XDP_OPTIONS_ZEROCOPY
XDP_PGOFF_RX_RING
XDP_PGOFF_TX_RING
XDP_UMEM_PGOFF_FILL_RING
XDP_UMEM_PGOFF_COMPLETION_RING
XSK_UNALIGNED_BUF_OFFSET_SHIFT
XSK_UNALIGNED_BUF_ADDR_MASK
XDP_PKT_CONTD
XENFS_SUPER_MAGIC
XFS_SUPER_MAGIC
_SC_2_C_VERSION
@@ -608,6 +638,7 @@ glob64
glob64_t
globfree
globfree64
iocb
lio_listio
mallinfo
mallinfo2
@@ -622,6 +653,10 @@ ntp_adjtime
ntp_gettime
ntptimeval
open_wmemstream
posix_spawn_file_actions_addchdir_np
posix_spawn_file_actions_addfchdir_np
posix_spawn_file_actions_addclosefrom_np
posix_spawn_file_actions_addtcsetpgrp_np
preadv2
preadv64
prlimit
@@ -657,7 +692,13 @@ eaccess
asctime_r
ctime_r
strftime
strftime_l
strptime
dirname
posix_basename
gnu_basename
gnu_basename
getmntent_r
putpwent
putgrent
execveat
close_range
+136
View File
@@ -0,0 +1,136 @@
B2500000
B3000000
B3500000
B4000000
BPF_ABS
BPF_ADD
BPF_ALU
BPF_B
BPF_DIV
BPF_H
BPF_IMM
BPF_IND
BPF_JA
BPF_JEQ
BPF_JGE
BPF_JGT
BPF_JMP
BPF_JUMP
BPF_K
BPF_LD
BPF_LDX
BPF_LEN
BPF_LL_OFF
BPF_MEM
BPF_MISC
BPF_MISCOP
BPF_MOD
BPF_MSH
BPF_NEG
BPF_NET_OFF
BPF_RET
BPF_RVAL
BPF_ST
BPF_STMT
BPF_STX
BPF_SUB
BPF_W
BPF_X
BPF_XOR
CIBAUD
FICLONE
FICLONERANGE
flock64
KEYCTL_CAPABILITIES
KEYCTL_CAPS0_BIG_KEY
KEYCTL_CAPS0_CAPABILITIES
KEYCTL_CAPS0_DIFFIE_HELLMAN
KEYCTL_CAPS0_INVALIDATE
KEYCTL_CAPS0_MOVE
KEYCTL_CAPS0_PERSISTENT_KEYRINGS
KEYCTL_CAPS0_PUBLIC_KEY
KEYCTL_CAPS0_RESTRICT_KEYRING
KEYCTL_CAPS1_NS_KEYRING_NAME
KEYCTL_CAPS1_NS_KEY_TAG
KEYCTL_MOVE
MADV_SOFT_OFFLINE
MAP_SYNC
NFT_MSG_DELOBJ
NFT_MSG_GETOBJ
NFT_MSG_GETOBJ_RESET
NFT_MSG_NEWOBJ
PTRACE_SYSEMU
PTRACE_SYSEMU_SINGLESTEP
SCM_TIMESTAMPNS
SCM_WIFI_STATUS
SIGSTKFLT
SIGUNUSED
SKF_AD_ALU_XOR_X
SKF_AD_CPU
SKF_AD_HATYPE
SKF_AD_MARK
SKF_AD_MAX
SKF_AD_NLATTR
SKF_AD_NLATTR_NEST
SKF_AD_OFF
SKF_AD_PAY_OFFSET
SKF_AD_PKTTYPE
SKF_AD_PROTOCOL
SKF_AD_QUEUE
SKF_AD_RANDOM
SKF_AD_RXHASH
SKF_AD_VLAN_TAG
SKF_AD_VLAN_TAG_PRESENT
SKF_AD_VLAN_TPID
SKF_LL_OFF
SKF_NET_OFF
SO_ATTACH_BPF
SO_ATTACH_FILTER
SO_BPF_EXTENSIONS
SO_BSDCOMPAT
SO_DETACH_BPF
SO_DETACH_FILTER
SO_GET_FILTER
SO_INCOMING_CPU
SO_LOCK_FILTER
SO_MAX_PACING_RATE
SO_NO_CHECK
SO_NOFCS
SO_PEERNAME
SO_PRIORITY
SO_PROTOCOL
SO_SECURITY_AUTHENTICATION
SO_SECURITY_ENCRYPTION_NETWORK
SO_SECURITY_ENCRYPTION_TRANSPORT
SO_SELECT_ERR_QUEUE
SO_TIMESTAMPNS
SO_WIFI_STATUS
SYS_accept
SYS_msgctl
SYS_msgget
SYS_msgrcv
SYS_msgsnd
SYS_pkey_alloc
SYS_pkey_free
SYS_pkey_mprotect
SYS_semctl
SYS_semget
SYS_semop
SYS_semtimedop
SYS_sendfile
SYS_shmat
SYS_shmctl
SYS_shmdt
SYS_shmget
SYS_sync_file_range
termios2
TIOCCBRK
TIOCGRS485
TIOCSBRK
TIOCSRS485
XCASE
max_align_t
mcontext_t
ucontext_t
user_regs_struct
user_fp_struct
+26
View File
@@ -23,6 +23,30 @@ PF_XDP
PIDFD_NONBLOCK
PR_SET_VMA
PR_SET_VMA_ANON_NAME
SOL_XDP
XDP_SHARED_UMEM
XDP_COPY
XDP_ZEROCOPY
XDP_USE_NEED_WAKEUP
XDP_USE_SG
XDP_UMEM_UNALIGNED_CHUNK_FLAG
XDP_RING_NEED_WAKEUP
XDP_MMAP_OFFSETS
XDP_RX_RING
XDP_TX_RING
XDP_UMEM_REG
XDP_UMEM_FILL_RING
XDP_UMEM_COMPLETION_RING
XDP_STATISTICS
XDP_OPTIONS
XDP_OPTIONS_ZEROCOPY
XDP_PGOFF_RX_RING
XDP_PGOFF_TX_RING
XDP_UMEM_PGOFF_FILL_RING
XDP_UMEM_PGOFF_COMPLETION_RING
XSK_UNALIGNED_BUF_OFFSET_SHIFT
XSK_UNALIGNED_BUF_ADDR_MASK
XDP_PKT_CONTD
adjtimex
aio_cancel
aio_error
@@ -33,6 +57,7 @@ aio_suspend
aio_write
aiocb
clock_adjtime
copy_file_range
ctermid
explicit_bzero
futimes
@@ -53,6 +78,7 @@ euidaccess
eaccess
asctime_r
strftime
strftime_l
strptime
dirname
basename
+568 -2
View File
@@ -71,8 +71,10 @@ ALG_OP_DECRYPT
ALG_OP_ENCRYPT
ALG_SET_AEAD_ASSOCLEN
ALG_SET_AEAD_AUTHSIZE
ALG_SET_DRBG_ENTROPY
ALG_SET_IV
ALG_SET_KEY
ALG_SET_KEY_BY_KEY_SERIAL
ALG_SET_OP
ALT_DIGITS
AM_STR
@@ -176,6 +178,7 @@ AT_PHENT
AT_PHNUM
AT_PLATFORM
AT_RANDOM
AT_RECURSIVE
AT_REMOVEDIR
AT_SECURE
AT_SYMLINK_FOLLOW
@@ -236,6 +239,20 @@ CAN_RAW_LOOPBACK
CAN_RAW_RECV_OWN_MSGS
CAN_RAW_FD_FRAMES
CAN_RAW_JOIN_FILTERS
CAN_RAW_XL_FRAMES
CANXL_HDR_SIZE
CANXL_MAX_DLC
CANXL_MAX_DLC_MASK
CANXL_MAX_DLEN
CANXL_MAX_MTU
CANXL_MIN_DLC
CANXL_MIN_DLEN
CANXL_MIN_MTU
CANXL_MTU
CANXL_PRIO_BITS
CANXL_PRIO_MASK
CANXL_SEC
CANXL_XLF
CBAUD
CBAUDEX
CLD_CONTINUED
@@ -333,6 +350,23 @@ DAY_4
DAY_5
DAY_6
DAY_7
DCCP_SERVICE_LIST_MAX_LEN
DCCP_SOCKOPT_AVAILABLE_CCIDS
DCCP_SOCKOPT_CCID
DCCP_SOCKOPT_CCID_RX_INFO
DCCP_SOCKOPT_CCID_TX_INFO
DCCP_SOCKOPT_CHANGE_L
DCCP_SOCKOPT_CHANGE_R
DCCP_SOCKOPT_GET_CUR_MPS
DCCP_SOCKOPT_PACKET_SIZE
DCCP_SOCKOPT_QPOLICY_ID
DCCP_SOCKOPT_QPOLICY_TXQLEN
DCCP_SOCKOPT_RECV_CSCOV
DCCP_SOCKOPT_RX_CCID
DCCP_SOCKOPT_SEND_CSCOV
DCCP_SOCKOPT_SERVER_TIMEWAIT
DCCP_SOCKOPT_SERVICE
DCCP_SOCKOPT_TX_CCID
DT_UNKNOWN
D_FMT
D_T_FMT
@@ -685,6 +719,8 @@ FANOTIFY_METADATA_VERSION
FAN_ACCESS
FAN_ACCESS_PERM
FAN_ALLOW
FAN_ATTRIB
FAN_AUDIT
FAN_CLASS_CONTENT
FAN_CLASS_NOTIF
FAN_CLASS_PRE_CONTENT
@@ -692,25 +728,60 @@ FAN_CLOEXEC
FAN_CLOSE
FAN_CLOSE_NOWRITE
FAN_CLOSE_WRITE
FAN_CREATE
FAN_DELETE
FAN_DELETE_SELF
FAN_DENY
FAN_ENABLE_AUDIT
FAN_EPIDFD
FAN_EVENT_INFO_TYPE_DFID
FAN_EVENT_INFO_TYPE_DFID_NAME
FAN_EVENT_INFO_TYPE_ERROR
FAN_EVENT_INFO_TYPE_FID
FAN_EVENT_INFO_TYPE_NEW_DFID_NAME
FAN_EVENT_INFO_TYPE_OLD_DFID_NAME
FAN_EVENT_INFO_TYPE_PIDFD
FAN_EVENT_ON_CHILD
FAN_FS_ERROR
FAN_INFO
FAN_MARK_ADD
FAN_MARK_DONT_FOLLOW
FAN_MARK_EVICTABLE
FAN_MARK_FILESYSTEM
FAN_MARK_FLUSH
FAN_MARK_IGNORE
FAN_MARK_IGNORED_MASK
FAN_MARK_IGNORED_SURV_MODIFY
FAN_MARK_IGNORE_SURV
FAN_MARK_INODE
FAN_MARK_MOUNT
FAN_MARK_ONLYDIR
FAN_MARK_REMOVE
FAN_MODIFY
FAN_MOVE
FAN_MOVED_FROM
FAN_MOVED_TO
FAN_MOVE_SELF
FAN_NOFD
FAN_NONBLOCK
FAN_NOPIDFD
FAN_ONDIR
FAN_OPEN
FAN_OPEN_EXEC
FAN_OPEN_EXEC_PERM
FAN_OPEN_PERM
FAN_Q_OVERFLOW
FAN_RENAME
FAN_REPORT_DFID_NAME
FAN_REPORT_DFID_NAME_TARGET
FAN_REPORT_DIR_FID
FAN_REPORT_FID
FAN_REPORT_NAME
FAN_REPORT_PIDFD
FAN_REPORT_TARGET_FID
FAN_REPORT_TID
FAN_RESPONSE_INFO_AUDIT_RULE
FAN_RESPONSE_INFO_NONE
FAN_UNLIMITED_MARKS
FAN_UNLIMITED_QUEUE
FF0
@@ -723,6 +794,15 @@ FIONCLEX
FIONREAD
FLUSHO
FOPEN_MAX
FS_IOC_GETFLAGS
FS_IOC_SETFLAGS
FS_IOC_GETVERSION
FS_IOC_SETVERSION
FS_IOC32_GETFLAGS
FS_IOC32_SETFLAGS
FS_IOC32_GETVERSION
FS_IOC32_SETVERSION
FUTEX_BITSET_MATCH_ANY
FUTEX_CLOCK_REALTIME
FUTEX_CMD_MASK
FUTEX_CMP_REQUEUE
@@ -730,6 +810,19 @@ FUTEX_CMP_REQUEUE_PI
FUTEX_FD
FUTEX_LOCK_PI
FUTEX_LOCK_PI2
FUTEX_OP
FUTEX_OP_ADD
FUTEX_OP_ANDN
FUTEX_OP_CMP_EQ
FUTEX_OP_CMP_GE
FUTEX_OP_CMP_GT
FUTEX_OP_CMP_LE
FUTEX_OP_CMP_LT
FUTEX_OP_CMP_NE
FUTEX_OP_OPARG_SHIFT
FUTEX_OP_OR
FUTEX_OP_SET
FUTEX_OP_XOR
FUTEX_PRIVATE_FLAG
FUTEX_REQUEUE
FUTEX_TRYLOCK_PI
@@ -786,7 +879,37 @@ GLOB_NOSPACE
GRND_NONBLOCK
GRND_RANDOM
GRND_INSECURE
HWTSTAMP_TX_OFF
HWTSTAMP_TX_ON
HWTSTAMP_TX_ONESTEP_SYNC
HWTSTAMP_TX_ONESTEP_P2P
HWTSTAMP_FILTER_NONE
HWTSTAMP_FILTER_ALL
HWTSTAMP_FILTER_SOME
HWTSTAMP_FILTER_PTP_V1_L4_EVENT
HWTSTAMP_FILTER_PTP_V1_L4_SYNC
HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ
HWTSTAMP_FILTER_PTP_V2_L4_EVENT
HWTSTAMP_FILTER_PTP_V2_L4_SYNC
HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ
HWTSTAMP_FILTER_PTP_V2_L2_EVENT
HWTSTAMP_FILTER_PTP_V2_L2_SYNC
HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ
HWTSTAMP_FILTER_PTP_V2_EVENT
HWTSTAMP_FILTER_PTP_V2_SYNC
HWTSTAMP_FILTER_PTP_V2_DELAY_REQ
HWTSTAMP_FILTER_NTP_ALL
IBSHIFT
IF_LINK_MODE_DEFAULT
IF_LINK_MODE_DORMANT
IF_LINK_MODE_TESTING
IF_OPER_DORMANT
IF_OPER_DOWN
IF_OPER_LOWERLAYERDOWN
IF_OPER_NOTPRESENT
IF_OPER_TESTING
IF_OPER_UNKNOWN
IF_OPER_UP
IFA_ADDRESS
IFA_ANYCAST
IFA_BROADCAST
@@ -817,8 +940,19 @@ IFF_LOWER_UP
IFF_MASTER
IFF_MULTICAST
IFF_MULTI_QUEUE
IFF_NO_CARRIER
IFF_NOARP
IFF_NOFILTER
TUN_TX_TIMESTAMP
TUN_F_CSUM
TUN_F_TSO4
TUN_F_TSO6
TUN_F_TSO_ECN
TUN_F_UFO
TUN_F_USO4
TUN_F_USO6
TUN_PKT_STRIP
TUN_FLT_ALLMULTI
IFF_NOTRAILERS
IFF_NO_PI
IFF_ONE_QUEUE
@@ -830,11 +964,14 @@ IFF_RUNNING
IFF_SLAVE
IFF_TAP
IFF_TUN
IFF_NAPI
IFF_NAPI_FRAGS
IFF_TUN_EXCL
IFF_UP
IFF_VNET_HDR
IFLA_ADDRESS
IFLA_AF_SPEC
IFLA_ALLMULTI
IFLA_ALT_IFNAME
IFLA_BROADCAST
IFLA_CARRIER
@@ -844,6 +981,7 @@ IFLA_CARRIER_UP_COUNT
IFLA_COST
IFLA_EVENT
IFLA_EXT_MASK
IFLA_GRO_MAX_SIZE
IFLA_GROUP
IFLA_GSO_MAX_SEGS
IFLA_GSO_MAX_SIZE
@@ -874,6 +1012,8 @@ IFLA_NUM_TX_QUEUES
IFLA_NUM_VF
IFLA_OPERSTATE
IFLA_PAD
IFLA_PARENT_DEV_BUS_NAME
IFLA_PARENT_DEV_NAME
IFLA_PERM_ADDRESS
IFLA_PHYS_PORT_ID
IFLA_PHYS_PORT_NAME
@@ -889,6 +1029,8 @@ IFLA_QDISC
IFLA_STATS
IFLA_STATS64
IFLA_TARGET_NETNSID
IFLA_TSO_MAX_SEGS
IFLA_TSO_MAX_SIZE
IFLA_TXQLEN
IFLA_UNSPEC
IFLA_VFINFO_LIST
@@ -973,6 +1115,7 @@ IPPROTO_DSTOPTS
IPPROTO_EGP
IPPROTO_ENCAP
IPPROTO_ESP
IPPROTO_ETHERNET
IPPROTO_FRAGMENT
IPPROTO_GRE
IPPROTO_HOPOPTS
@@ -1147,6 +1290,12 @@ J1939_PGN_MAX
J1939_PGN_PDU1_MAX
J1939_PGN_REQUEST
KERNEL_VERSION
KEXEC_ARCH_MASK
KEXEC_FILE_NO_INITRAMFS
KEXEC_FILE_ON_CRASH
KEXEC_FILE_UNLOAD
KEXEC_ON_CRASH
KEXEC_PRESERVE_CONTEXT
KEYCTL_ASSUME_AUTHORITY
KEYCTL_CHOWN
KEYCTL_CLEAR
@@ -1222,22 +1371,29 @@ LOG_FTP
LOG_NFACILITIES
LOG_PERROR
L_tmpnam
MADV_COLD
MADV_DODUMP
MADV_DOFORK
MADV_DONTDUMP
MADV_DONTFORK
MADV_DONTNEED
MADV_DONTNEED_LOCKED
MADV_FREE
MADV_HUGEPAGE
MADV_HWPOISON
MADV_KEEPONFORK
MADV_MERGEABLE
MADV_NOHUGEPAGE
MADV_NORMAL
MADV_PAGEOUT
MADV_POPULATE_READ
MADV_POPULATE_WRITE
MADV_RANDOM
MADV_REMOVE
MADV_SEQUENTIAL
MADV_UNMERGEABLE
MADV_WILLNEED
MADV_WIPEONFORK
MAP_DENYWRITE
MAP_EXECUTABLE
MAP_FILE
@@ -1279,9 +1435,22 @@ MCAST_MSFILTER
MCAST_UNBLOCK_SOURCE
MCL_CURRENT
MCL_FUTURE
MCL_ONFAULT
MEMBARRIER_CMD_GLOBAL
MEMBARRIER_CMD_GLOBAL_EXPEDITED
MEMBARRIER_CMD_QUERY
MEMBARRIER_CMD_PRIVATE_EXPEDITED
MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE
MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ
MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE
MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ
MFD_ALLOW_SEALING
MFD_CLOEXEC
MFD_EXEC
MFD_HUGETLB
MFD_NOEXEC_SEAL
MINSIGSTKSZ
MMAP_PAGE_ZERO
MNT_DETACH
@@ -1317,6 +1486,7 @@ MSG_INFO
MSG_MORE
MSG_NOERROR
MSG_NOSIGNAL
MSG_NOTIFICATION
MSG_RST
MSG_STAT
MSG_SYN
@@ -1617,6 +1787,8 @@ NUD_STALE
OFDEL
OFILL
OLCUC
OPEN_TREE_CLOEXEC
OPEN_TREE_CLONE
O_ASYNC
O_DIRECT
O_DSYNC
@@ -1755,6 +1927,15 @@ PR_MCE_KILL_LATE
PR_MCE_KILL_SET
PR_MPX_DISABLE_MANAGEMENT
PR_MPX_ENABLE_MANAGEMENT
PR_SCHED_CORE
PR_SCHED_CORE_CREATE
PR_SCHED_CORE_GET
PR_SCHED_CORE_MAX
PR_SCHED_CORE_SCOPE_PROCESS_GROUP
PR_SCHED_CORE_SCOPE_THREAD
PR_SCHED_CORE_SCOPE_THREAD_GROUP
PR_SCHED_CORE_SHARE_FROM
PR_SCHED_CORE_SHARE_TO
PR_SET_CHILD_SUBREAPER
PR_SET_DUMPABLE
PR_SET_ENDIAN
@@ -1782,6 +1963,7 @@ PR_SET_NAME
PR_SET_NO_NEW_PRIVS
PR_SET_PDEATHSIG
PR_SET_PTRACER
PR_SET_PTRACER_ANY
PR_SET_SECCOMP
PR_SET_SECUREBITS
PR_SET_THP_DISABLE
@@ -1806,7 +1988,10 @@ PTHREAD_PRIO_INHERIT
PTHREAD_PRIO_PROTECT
PTHREAD_PROCESS_PRIVATE
PTHREAD_PROCESS_SHARED
PTHREAD_INHERIT_SCHED
PTHREAD_EXPLICIT_SCHED
PTHREAD_STACK_MIN
PTHREAD_ONCE_INIT
PTRACE_ATTACH
PTRACE_CONT
PTRACE_DETACH
@@ -1821,6 +2006,7 @@ PTRACE_EVENT_VFORK_DONE
PTRACE_GETEVENTMSG
PTRACE_GETREGSET
PTRACE_GETSIGINFO
PTRACE_GETSIGMASK
PTRACE_INTERRUPT
PTRACE_KILL
PTRACE_LISTEN
@@ -1846,6 +2032,7 @@ PTRACE_SEIZE
PTRACE_SETOPTIONS
PTRACE_SETREGSET
PTRACE_SETSIGINFO
PTRACE_SETSIGMASK
PTRACE_SINGLESTEP
PTRACE_SYSCALL
PTRACE_TRACEME
@@ -1938,6 +2125,7 @@ RESOLVE_IN_ROOT
RESOLVE_NO_MAGICLINKS
RESOLVE_NO_SYMLINKS
RESOLVE_NO_XDEV
RLIM64_INFINITY
RLIMIT_AS
RLIMIT_CORE
RLIMIT_CPU
@@ -1980,6 +2168,13 @@ RTCF_LOG
RTCF_MASQ
RTCF_NAT
RTCF_VALVE
RTEXT_FILTER_BRVLAN
RTEXT_FILTER_BRVLAN_COMPRESSED
RTEXT_FILTER_CFM_CONFIG
RTEXT_FILTER_CFM_STATUS
RTEXT_FILTER_MRP
RTEXT_FILTER_SKIP_STATS
RTEXT_FILTER_VF
RTF_ADDRCLASSMASK
RTF_ADDRCONF
RTF_ALLONLINK
@@ -2126,23 +2321,97 @@ SCM_J1939_ERRQUEUE
SCM_J1939_PRIO
SCM_TIMESTAMP
SCM_TIMESTAMPING
SCTP_ABORT
SCTP_ADDR_OVER
SCTP_ALL_ASSOC
SCTP_ASSOCINFO
SCTP_AUTH_CHUNK
SCTP_AUTH_ACTIVE_KEY
SCTP_AUTH_DEACTIVATE_KEY
SCTP_AUTH_DELETE_KEY
SCTP_AUTH_KEY
SCTP_AUTO_ASCONF
SCTP_AUTOCLOSE
SCTP_CONTEXT
SCTP_CURRENT_ASSOC
SCTP_DELAYED_ACK
SCTP_DELAYED_ACK_TIME
SCTP_DELAYED_SACK
SCTP_DEFAULT_SEND_PARAM
SCTP_DEFAULT_SNDINFO
SCTP_ENABLE_CHANGE_ASSOC_REQ
SCTP_ENABLE_RESET_ASSOC_REQ
SCTP_ENABLE_RESET_STREAM_REQ
SCTP_ENABLE_STRRESET_MASK
SCTP_EOF
SCTP_EVENTS
SCTP_FRAGMENT_INTERLEAVE
SCTP_FUTURE_ASSOC
SCTP_GET_ASSOC_ID_LIST
SCTP_GET_ASSOC_NUMBER
SCTP_GET_PEER_ADDR_INFO
SCTP_HMAC_IDENT
SCTP_I_WANT_MAPPED_V4_ADDR
SCTP_INIT
SCTP_INITMSG
SCTP_LOCAL_AUTH_CHUNKS
SCTP_MAX_BURST
SCTP_MAXSEG
SCTP_NODELAY
SCTP_NOTIFICATION
SCTP_NXTINFO
SCTP_PARTIAL_DELIVERY_POINT
SCTP_PEER_ADDR_PARAMS
SCTP_PEER_ADDR_THLDS
SCTP_PEER_ADDR_THLDS_V2
SCTP_PEER_AUTH_CHUNKS
SCTP_PR_SCTP_ALL
SCTP_PR_SCTP_NONE
SCTP_PR_SCTP_MASK
SCTP_PR_SCTP_MAX
SCTP_PR_SCTP_PRIO
SCTP_PR_SCTP_RTX
SCTP_PR_SCTP_TTL
SCTP_PRIMARY_ADDR
SCTP_RECVNXTINFO
SCTP_RECVRCVINFO
SCTP_REUSE_PORT
SCTP_RTOINFO
SCTP_SACK_IMMEDIATELY
SCTP_SENDALL
SCTP_SET_PEER_PRIMARY_ADDR
SCTP_SNDRCV
SCTP_STATUS
SCTP_STREAM_RESET_INCOMING
SCTP_STREAM_RESET_OUTGOING
SCTP_UNORDERED
SECCOMP_ADDFD_FLAG_SEND
SECCOMP_ADDFD_FLAG_SETFD
SECCOMP_FILTER_FLAG_LOG
SECCOMP_FILTER_FLAG_NEW_LISTENER
SECCOMP_FILTER_FLAG_SPEC_ALLOW
SECCOMP_FILTER_FLAG_TSYNC
SECCOMP_FILTER_FLAG_TSYNC_ESRCH
SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV
SECCOMP_GET_ACTION_AVAIL
SECCOMP_GET_NOTIF_SIZES
SECCOMP_MODE_DISABLED
SECCOMP_MODE_FILTER
SECCOMP_MODE_STRICT
SECCOMP_MODE_FILTER
SECCOMP_RET_ACTION
SECCOMP_RET_ACTION_FULL
SECCOMP_RET_ALLOW
SECCOMP_RET_DATA
SECCOMP_RET_ERRNO
SECCOMP_RET_KILL
SECCOMP_RET_KILL_PROCESS
SECCOMP_RET_KILL_THREAD
SECCOMP_RET_KILL
SECCOMP_RET_LOG
SECCOMP_RET_TRACE
SECCOMP_RET_TRAP
SECCOMP_SET_MODE_FILTER
SECCOMP_SET_MODE_STRICT
SECCOMP_USER_NOTIF_FLAG_CONTINUE
SEEK_DATA
SEEK_HOLE
SELFMAG
@@ -2178,6 +2447,7 @@ SIOCDIFADDR
SIOCDRARP
SIOCETHTOOL
SIOCGARP
SIOCGHWTSTAMP
SIOCGIFADDR
SIOCGIFBR
SIOCGIFBRDADDR
@@ -2203,6 +2473,7 @@ SIOGIFINDEX
SIOCGMIIPHY
SIOCGMIIREG
SIOCSARP
SIOCSHWTSTAMP
SIOCSIFADDR
SIOCSIFBR
SIOCSIFBRDADDR
@@ -2216,6 +2487,7 @@ SIOCSIFMAP
SIOCSIFMEM
SIOCSIFMETRIC
SIOCSIFMTU
SIOCSIFNAME
SIOCSIFNETMASK
SIOCSIFPFLAGS
SIOCSIFSLAVE
@@ -2224,6 +2496,237 @@ SIOCSMIIREG
SIOCSRARP
SIOCOUTQNSD
SIOCWANDEV
WIRELESS_EXT
SIOCSIWCOMMIT
SIOCGIWNAME
SIOCSIWNWID
SIOCGIWNWID
SIOCSIWFREQ
SIOCGIWFREQ
SIOCSIWMODE
SIOCGIWMODE
SIOCSIWSENS
SIOCGIWSENS
SIOCSIWRANGE
SIOCGIWRANGE
SIOCSIWPRIV
SIOCGIWPRIV
SIOCSIWSTATS
SIOCGIWSTATS
SIOCSIWSPY
SIOCGIWSPY
SIOCSIWTHRSPY
SIOCGIWTHRSPY
SIOCSIWAP
SIOCGIWAP
SIOCGIWAPLIST
SIOCSIWSCAN
SIOCGIWSCAN
SIOCSIWESSID
SIOCGIWESSID
SIOCSIWNICKN
SIOCGIWNICKN
SIOCSIWRATE
SIOCGIWRATE
SIOCSIWRTS
SIOCGIWRTS
SIOCSIWFRAG
SIOCGIWFRAG
SIOCSIWTXPOW
SIOCGIWTXPOW
SIOCSIWRETRY
SIOCGIWRETRY
SIOCSIWENCODE
SIOCGIWENCODE
SIOCSIWPOWER
SIOCGIWPOWER
SIOCSIWGENIE
SIOCGIWGENIE
SIOCSIWMLME
SIOCSIWAUTH
SIOCGIWAUTH
SIOCSIWENCODEEXT
SIOCGIWENCODEEXT
SIOCSIWPMKSA
SIOCIWFIRSTPRIV
SIOCIWLASTPRIV
SIOCIWFIRST
SIOCIWLAST
IWEVTXDROP
IWEVQUAL
IWEVCUSTOM
IWEVREGISTERED
IWEVEXPIRED
IWEVGENIE
IWEVMICHAELMICFAILURE
IWEVASSOCREQIE
IWEVASSOCRESPIE
IWEVPMKIDCAND
IWEVFIRST
IW_PRIV_TYPE_MASK
IW_PRIV_TYPE_NONE
IW_PRIV_TYPE_BYTE
IW_PRIV_TYPE_CHAR
IW_PRIV_TYPE_INT
IW_PRIV_TYPE_FLOAT
IW_PRIV_TYPE_ADDR
IW_PRIV_SIZE_FIXED
IW_PRIV_SIZE_MASK
IW_MAX_FREQUENCIES
IW_MAX_BITRATES
IW_MAX_TXPOWER
IW_MAX_SPY
IW_MAX_AP
IW_ESSID_MAX_SIZE
IW_MODE_AUTO
IW_MODE_ADHOC
IW_MODE_INFRA
IW_MODE_MASTER
IW_MODE_REPEAT
IW_MODE_SECOND
IW_MODE_MONITOR
IW_MODE_MESH
IW_QUAL_QUAL_UPDATED
IW_QUAL_LEVEL_UPDATED
IW_QUAL_NOISE_UPDATED
IW_QUAL_ALL_UPDATED
IW_QUAL_DBM
IW_QUAL_QUAL_INVALID
IW_QUAL_LEVEL_INVALID
IW_QUAL_NOISE_INVALID
IW_QUAL_RCPI
IW_QUAL_ALL_INVALID
IW_FREQ_AUTO
IW_FREQ_FIXED
IW_MAX_ENCODING_SIZES
IW_ENCODING_TOKEN_MAX
IW_ENCODE_INDEX
IW_ENCODE_FLAGS
IW_ENCODE_MODE
IW_ENCODE_DISABLED
IW_ENCODE_ENABLED
IW_ENCODE_RESTRICTED
IW_ENCODE_OPEN
IW_ENCODE_NOKEY
IW_ENCODE_TEMP
IW_POWER_ON
IW_POWER_TYPE
IW_POWER_PERIOD
IW_POWER_TIMEOUT
IW_POWER_MODE
IW_POWER_UNICAST_R
IW_POWER_MULTICAST_R
IW_POWER_ALL_R
IW_POWER_FORCE_S
IW_POWER_REPEATER
IW_POWER_MODIFIER
IW_POWER_MIN
IW_POWER_MAX
IW_POWER_RELATIVE
IW_TXPOW_TYPE
IW_TXPOW_DBM
IW_TXPOW_MWATT
IW_TXPOW_RELATIVE
IW_TXPOW_RANGE
IW_RETRY_ON
IW_RETRY_TYPE
IW_RETRY_LIMIT
IW_RETRY_LIFETIME
IW_RETRY_MODIFIER
IW_RETRY_MIN
IW_RETRY_MAX
IW_RETRY_RELATIVE
IW_RETRY_SHORT
IW_RETRY_LONG
IW_SCAN_DEFAULT
IW_SCAN_ALL_ESSID
IW_SCAN_THIS_ESSID
IW_SCAN_ALL_FREQ
IW_SCAN_THIS_FREQ
IW_SCAN_ALL_MODE
IW_SCAN_THIS_MODE
IW_SCAN_ALL_RATE
IW_SCAN_THIS_RATE
IW_SCAN_TYPE_ACTIVE
IW_SCAN_TYPE_PASSIVE
IW_SCAN_MAX_DATA
IW_SCAN_CAPA_NONE
IW_SCAN_CAPA_ESSID
IW_SCAN_CAPA_BSSID
IW_SCAN_CAPA_CHANNEL
IW_SCAN_CAPA_MODE
IW_SCAN_CAPA_RATE
IW_SCAN_CAPA_TYPE
IW_SCAN_CAPA_TIME
IW_CUSTOM_MAX
IW_GENERIC_IE_MAX
IW_MLME_DEAUTH
IW_MLME_DISASSOC
IW_MLME_AUTH
IW_MLME_ASSOC
IW_AUTH_INDEX
IW_AUTH_FLAGS
IW_AUTH_WPA_VERSION
IW_AUTH_CIPHER_PAIRWISE
IW_AUTH_CIPHER_GROUP
IW_AUTH_KEY_MGMT
IW_AUTH_TKIP_COUNTERMEASURES
IW_AUTH_DROP_UNENCRYPTED
IW_AUTH_80211_AUTH_ALG
IW_AUTH_WPA_ENABLED
IW_AUTH_RX_UNENCRYPTED_EAPOL
IW_AUTH_ROAMING_CONTROL
IW_AUTH_PRIVACY_INVOKED
IW_AUTH_CIPHER_GROUP_MGMT
IW_AUTH_MFP
IW_AUTH_WPA_VERSION_DISABLED
IW_AUTH_WPA_VERSION_WPA
IW_AUTH_WPA_VERSION_WPA2
IW_AUTH_CIPHER_NONE
IW_AUTH_CIPHER_WEP40
IW_AUTH_CIPHER_TKIP
IW_AUTH_CIPHER_CCMP
IW_AUTH_CIPHER_WEP104
IW_AUTH_CIPHER_AES_CMAC
IW_AUTH_KEY_MGMT_802_1X
IW_AUTH_KEY_MGMT_PSK
IW_AUTH_ALG_OPEN_SYSTEM
IW_AUTH_ALG_SHARED_KEY
IW_AUTH_ALG_LEAP
IW_AUTH_ROAMING_ENABLE
IW_AUTH_ROAMING_DISABLE
IW_AUTH_MFP_DISABLED
IW_AUTH_MFP_OPTIONAL
IW_AUTH_MFP_REQUIRED
IW_ENCODE_SEQ_MAX_SIZE
IW_ENCODE_ALG_NONE
IW_ENCODE_ALG_WEP
IW_ENCODE_ALG_TKIP
IW_ENCODE_ALG_CCMP
IW_ENCODE_ALG_PMK
IW_ENCODE_ALG_AES_CMAC
IW_ENCODE_EXT_TX_SEQ_VALID
IW_ENCODE_EXT_RX_SEQ_VALID
IW_ENCODE_EXT_GROUP_KEY
IW_ENCODE_EXT_SET_TX_KEY
IW_MICFAILURE_KEY_ID
IW_MICFAILURE_GROUP
IW_MICFAILURE_PAIRWISE
IW_MICFAILURE_STAKEY
IW_MICFAILURE_COUNT
IW_ENC_CAPA_WPA
IW_ENC_CAPA_WPA2
IW_ENC_CAPA_CIPHER_TKIP
IW_ENC_CAPA_CIPHER_CCMP
IW_ENC_CAPA_4WAY_HANDSHAKE
IW_PMKSA_ADD
IW_PMKSA_REMOVE
IW_PMKSA_FLUSH
IW_PMKID_LEN
IW_PMKID_CAND_PREAUTH
IW_EV_CHAR_PK_LEN
IW_EV_LCP_PK_LEN
IW_EV_POINT_PK_LEN
SI_LOAD_SHIFT
SND_CNT
SND_MAX
@@ -2268,6 +2771,7 @@ SOL_NETBEUI
SOL_NETLINK
SOL_TCP
SOL_TIPC
SOL_TLS
SOL_UDP
SOL_X25
SOMAXCONN
@@ -2660,6 +3164,34 @@ TIOCSCTTY
TIOCSPGRP
TIOCSSOFTCAR
TIOCSTI
TLS_1_2_VERSION
TLS_1_2_VERSION_MAJOR
TLS_1_2_VERSION_MINOR
TLS_1_3_VERSION
TLS_1_3_VERSION_MAJOR
TLS_1_3_VERSION_MINOR
TLS_CIPHER_AES_GCM_128
TLS_CIPHER_AES_GCM_128_IV_SIZE
TLS_CIPHER_AES_GCM_128_KEY_SIZE
TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE
TLS_CIPHER_AES_GCM_128_SALT_SIZE
TLS_CIPHER_AES_GCM_128_TAG_SIZE
TLS_CIPHER_AES_GCM_256
TLS_CIPHER_AES_GCM_256_IV_SIZE
TLS_CIPHER_AES_GCM_256_KEY_SIZE
TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE
TLS_CIPHER_AES_GCM_256_SALT_SIZE
TLS_CIPHER_AES_GCM_256_TAG_SIZE
TLS_CIPHER_CHACHA20_POLY1305
TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE
TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE
TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE
TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE
TLS_GET_RECORD_TYPE
TLS_RX
TLS_SET_RECORD_TYPE
TLS_TX
TUN_READQ_SIZE
TUN_TAP_DEV
TUN_TUN_DEV
@@ -2846,6 +3378,8 @@ __SIZEOF_PTHREAD_MUTEXATTR_T
__SIZEOF_PTHREAD_MUTEX_T
__SIZEOF_PTHREAD_RWLOCKATTR_T
__SIZEOF_PTHREAD_RWLOCK_T
__SIZEOF_PTHREAD_BARRIERATTR_T
__SIZEOF_PTHREAD_BARRIER_T
__WALL
__WCLONE
__WNOTHREAD
@@ -2876,6 +3410,7 @@ can_err_mask_t
can_filter
can_frame
canfd_frame
canxl_frame
canid_t
chroot
clearenv
@@ -2988,6 +3523,7 @@ getspnam_r
gettid
getxattr
hasmntopt
hwtstamp_config
iconv
iconv_close
iconv_open
@@ -2998,6 +3534,7 @@ if_freenameindex
if_nameindex
ifaddrs
ifreq
ifconf
in6_ifreq
in6_pktinfo
in6_rtmsg
@@ -3133,7 +3670,14 @@ priority_t
pread64
preadv
pthread_attr_getguardsize
pthread_attr_getinheritsched
pthread_attr_setinheritsched
pthread_attr_getschedpolicy
pthread_attr_setschedpolicy
pthread_attr_getschedparam
pthread_attr_setschedparam
pthread_attr_getstack
pthread_attr_setguardsize
pthread_cancel
pthread_condattr_getclock
pthread_condattr_getpshared
@@ -3164,6 +3708,17 @@ pthread_spin_lock
pthread_spin_trylock
pthread_spin_unlock
pthread_spinlock_t
pthread_barrierattr_init
pthread_barrierattr_setpshared
pthread_barrierattr_getpshared
pthread_barrierattr_destroy
pthread_barrier_init
pthread_barrier_wait
pthread_barrier_destroy
pthread_barrierattr_t
pthread_barrier_t
pthread_once
pthread_once_t
ptrace
ptsname_r
pwrite64
@@ -3203,7 +3758,12 @@ sched_rr_get_interval
sched_setaffinity
sched_setparam
sched_setscheduler
sctp_assoc_t
seccomp_data
seccomp_notif
seccomp_notif_addfd
seccomp_notif_resp
seccomp_notif_sizes
seed48
seekdir
sem_close
@@ -3273,6 +3833,7 @@ statfs64
statvfs64
strcasecmp
strcasestr
strchrnul
strncasecmp
strndup
strsignal
@@ -3314,3 +3875,8 @@ vhangup
vmsplice
wait4
waitid
eventfd_read
eventfd_write
__c_anonymous_ifru_map
__c_anonymous_ifr_ifru
__c_anonymous_ifc_ifcu
+57
View File
@@ -1,3 +1,60 @@
_REG_CPSR
_REG_ELR
_REG_FP
_REG_LR
_REG_PC
_REG_R0
_REG_R1
_REG_R10
_REG_R11
_REG_R12
_REG_R13
_REG_R14
_REG_R15
_REG_R2
_REG_R3
_REG_R4
_REG_R5
_REG_R6
_REG_R7
_REG_R8
_REG_R9
_REG_RV
_REG_SP
_REG_SPSR
_REG_TIPDR
_REG_X0
_REG_X1
_REG_X2
_REG_X3
_REG_X4
_REG_X5
_REG_X6
_REG_X7
_REG_X8
_REG_X9
_REG_X10
_REG_X11
_REG_X12
_REG_X13
_REG_X14
_REG_X15
_REG_X16
_REG_X17
_REG_X18
_REG_X19
_REG_X20
_REG_X21
_REG_X22
_REG_X23
_REG_X24
_REG_X25
_REG_X26
_REG_X27
_REG_X28
_REG_X29
_REG_X30
_REG_X31
PT_GETFPREGS
PT_GETREGS
PT_SETFPREGS
+4
View File
@@ -0,0 +1,4 @@
PT_GETREGS
PT_SETREGS
PT_GETFPREGS
PT_SETFPREGS
+24
View File
@@ -1,4 +1,28 @@
Aux64Info
_REG_DS
_REG_ERR
_REG_ES
_REG_FS
_REG_GS
_REG_R10
_REG_R11
_REG_R12
_REG_R13
_REG_R14
_REG_R15
_REG_R8
_REG_R9
_REG_RAX
_REG_RBP
_REG_RBX
_REG_RCX
_REG_RDI
_REG_RFLAGS
_REG_RIP
_REG_RSI
_REG_RSP
_REG_SS
_REG_TRAPNO
PT_GETFPREGS
PT_GETREGS
PT_SETFPREGS
+59
View File
@@ -298,10 +298,13 @@ ETIME
ETOOMANYREFS
EUSERS
EVFILT_AIO
EVFILT_EMPTY
EVFILT_FS
EVFILT_PROC
EVFILT_READ
EVFILT_SIGNAL
EVFILT_TIMER
EVFILT_USER
EVFILT_VNODE
EVFILT_WRITE
EV_ADD
@@ -396,6 +399,9 @@ GLOB_NOMATCH
GLOB_NOSORT
GLOB_NOSPACE
GLOB_NOSYS
GRND_INSECURE
GRND_NONBLOCK
GRND_RANDOM
HW_NCPU
IFF_ALLMULTI
IFF_BROADCAST
@@ -622,6 +628,7 @@ MADV_NORMAL
MADV_RANDOM
MADV_SEQUENTIAL
MADV_WILLNEED
MAP_ALIGNED
MAP_ALIGNMENT_16MB
MAP_ALIGNMENT_1TB
MAP_ALIGNMENT_256TB
@@ -636,6 +643,7 @@ MAP_NORESERVE
MAP_REMAPDUP
MAP_RENAME
MAP_STACK
MAP_TRYFIXED
MAP_WIRED
MAXFREQ
MAXPHASE
@@ -664,6 +672,9 @@ MNT_RELATIME
MNT_SOFTDEP
MNT_SYMPERM
MNT_UNION
MNT_WAIT
MNT_NOWAIT
MNT_LAZY
MOD_CLKA
MOD_CLKB
MOD_ESTERROR
@@ -717,21 +728,32 @@ NI_WITHSCOPEID
NOEXPR
NOKERNINFO
NOSTR
NOTE_ABSTIME
NOTE_ATTRIB
NOTE_CHILD
NOTE_DELETE
NOTE_EXEC
NOTE_EXIT
NOTE_EXTEND
NOTE_FFAND
NOTE_FFCOPY
NOTE_FFCTRLMASK
NOTE_FFLAGSMASK
NOTE_FFNOP
NOTE_FFOR
NOTE_FORK
NOTE_LINK
NOTE_LOWAT
NOTE_MSECONDS
NOTE_NSECONDS
NOTE_PCTRLMASK
NOTE_PDATAMASK
NOTE_RENAME
NOTE_REVOKE
NOTE_TRACK
NOTE_TRACKERR
NOTE_TRIGGER
NOTE_USECONDS
NOTE_WRITE
NTP_API
OFIOGETBMAP
@@ -842,6 +864,19 @@ Q_SETQUOTA
Q_SYNC
RADIXCHAR
RAND_MAX
RB_ASKNAME
RB_AUTOBOOT
RB_DUMP
RB_HALT
RB_INITNAME
RB_KDB
RB_MINIROOT
RB_NOSYNC
RB_POWERDOWN
RB_RDONLY
RB_SINGLE
RB_STRING
RB_USERCONF
REG_ASSERT
REG_ATOI
REG_BACKR
@@ -936,6 +971,7 @@ SOCK_RDM
SOMAXCONN
SO_ACCEPTFILTER
SO_NOHEADER
SO_NOSIGPIPE
SO_OVERFLOWED
SO_REUSEPORT
SO_TIMESTAMP
@@ -1037,9 +1073,13 @@ VM_PROC_MAP
VREPRINT
VSTATUS
VWERASE
WALLSIG
WALTSIG
WEXITED
WNOWAIT
WNOZOMBIE
WSTOPPED
WTRAPPED
YESEXPR
YESSTR
_IOFBF
@@ -1166,6 +1206,11 @@ arc4random
arc4random_buf
arc4random_uniform
arphdr
backtrace
backtrace_symbols
backtrace_symbols_fd
backtrace_symbols_fmt
backtrace_symbols_fd_fmt
bsearch
chflags
chroot
@@ -1238,6 +1283,7 @@ getdiskrawname
getdistcookedname
getdomainname
getdtablesize
getentropy
getfsspecname
getgrent
getgrent_r
@@ -1252,6 +1298,7 @@ getitimer
getlastlogx
getline
getloadavg
getmntinfo
getnameinfo
getopt_long
getpeereid
@@ -1260,6 +1307,7 @@ getprogname
getpwent
getpwent_r
getpwnam_r
getrandom
getrlimit
getrusage
getservbyport
@@ -1271,6 +1319,7 @@ getutmpx
getutxent
getutxid
getutxline
getvfsstat
getxattr
glob
glob_t
@@ -1391,6 +1440,7 @@ posix_spawnattr_setschedpolicy
posix_spawnattr_setsigdefault
posix_spawnattr_setsigmask
posix_spawnattr_t
ppoll
preadv
pseudo_AF_HDRCMPLT
pseudo_AF_KEY
@@ -1400,6 +1450,7 @@ pseudo_AF_XTP
pthread_attr_get_np
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_setguardsize
pthread_cancel
pthread_condattr_setclock
pthread_getattr_np
@@ -1429,6 +1480,7 @@ readdir_r
readlinkat
reallocarr
reallocarray
reboot
recvmmsg
recvmsg
regcomp
@@ -1466,6 +1518,7 @@ setgroups
sethostid
sethostname
setitimer
setlogin
setpriority
setproctitle
setprogname
@@ -1485,6 +1538,7 @@ shmid_ds
sigaltstack
sigevent
siginfo_t
sigsuspend
sigtimedwait
sigwait
sigwaitinfo
@@ -1498,6 +1552,8 @@ stack_t
strcasecmp
strcasestr
string_to_flags
strftime
strftime_l
strncasecmp
strndup
strpct
@@ -1508,6 +1564,7 @@ syscall
sysctl
sysctlbyname
sysctldesc
tcp_info
telldir
timer_create
timer_delete
@@ -1541,3 +1598,5 @@ EXTATTR_NAMESPACE_EMPTY
extattr_list_fd
extattr_list_file
extattr_list_link
EOWNERDEAD
ENOTRECOVERABLE
+67 -2
View File
@@ -98,6 +98,10 @@ CLD_EXITED
CLD_KILLED
CLD_STOPPED
CLD_TRAPPED
CLOCK_BOOTTIME
CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_CPUTIME_ID
CLOCK_UPTIME
CMSG_DATA
CMSG_FIRSTHDR
CMSG_LEN
@@ -172,6 +176,8 @@ ESOCKTNOSUPPORT
ETOOMANYREFS
EUSERS
EVFILT_AIO
EVFILT_DEVICE
EVFILT_EXCEPT
EVFILT_PROC
EVFILT_READ
EVFILT_SIGNAL
@@ -480,6 +486,7 @@ MAP_NOEXTEND
MAP_NORESERVE
MAP_RENAME
MAP_STACK
MAP_TRYFIXED
MCL_CURRENT
MCL_FUTURE
MDMBUF
@@ -521,6 +528,7 @@ MSG_CMSG_CLOEXEC
MSG_DONTWAIT
MSG_MCAST
MSG_NOSIGNAL
MSG_WAITFORONE
MNT_LAZY
MNT_NOWAIT
MNT_WAIT
@@ -578,6 +586,7 @@ NOEXPR
NOKERNINFO
NOSTR
NOTE_ATTRIB
NOTE_CHANGE
NOTE_CHILD
NOTE_DELETE
NOTE_EOF
@@ -587,6 +596,7 @@ NOTE_EXTEND
NOTE_FORK
NOTE_LINK
NOTE_LOWAT
NOTE_OOB
NOTE_PCTRLMASK
NOTE_PDATAMASK
NOTE_RENAME
@@ -610,6 +620,9 @@ O_RSYNC
O_SHLOCK
O_SYNC
PENDIN
P_ALL
P_PGID
P_PID
PF_APPLETALK
PF_BLUETOOTH
PF_BPF
@@ -692,6 +705,20 @@ Q_SETQUOTA
Q_SYNC
RADIXCHAR
RAND_MAX
RB_ASKNAME
RB_AUTOBOOT
RB_CONFIG
RB_DUMP
RB_GOODRANDOM
RB_HALT
RB_KDB
RB_INITNAME
RB_POWERDOWN
RB_RESET
RB_SERCONS
RB_TIMEBAD
RB_UNHIBERNATE
RB_USERREQ
REG_ASSERT
REG_ATOI
REG_BACKR
@@ -766,8 +793,10 @@ SOCK_RAW
SOCK_RDM
SOMAXCONN
SO_BINDANY
SO_DOMAIN
SO_NETPROC
SO_PEERCRED
SO_PROTOCOL
SO_RTABLE
SO_SPLICE
SO_TIMESTAMP
@@ -779,6 +808,7 @@ ST_RDONLY
S_IEXEC
S_IREAD
S_IWRITE
TCP_INFO
TCP_MAXSEG
TCP_MD5SIG
TCP_NOPUSH
@@ -827,6 +857,10 @@ UTIME_OMIT
UT_HOSTSIZE
UT_LINESIZE
UT_NAMESIZE
WEXITED
WNOWAIT
WSTOPPED
WTRAPPED
VDISCARD
VDSUSP
VLNEXT
@@ -981,6 +1015,7 @@ backtrace
backtrace_symbols
backtrace_symbols_fd
backtrace_symbols_fmt
basename
bsearch
caddr_t
calloc_conceal
@@ -994,6 +1029,7 @@ cmsghdr
daemon
difftime
dirfd
dirname
dl_iterate_phdr
dl_phdr_info
drand48
@@ -1065,6 +1101,7 @@ if_freenameindex
if_msghdr
if_nameindex
ifaddrs
ifreq
in6_pktinfo
initgroups
ip_mreqn
@@ -1091,6 +1128,7 @@ malloc_conceal
memmem
memrchr
mfs_args
mimmutable
mincore
mkdirat
mkfifoat
@@ -1118,6 +1156,27 @@ pipe2
pledge
popen
posix_madvise
posix_spawn
posix_spawn_file_actions_addclose
posix_spawn_file_actions_adddup2
posix_spawn_file_actions_addopen
posix_spawn_file_actions_destroy
posix_spawn_file_actions_init
posix_spawnattr_destroy
posix_spawnattr_getflags
posix_spawnattr_getpgroup
posix_spawnattr_getschedparam
posix_spawnattr_getschedpolicy
posix_spawnattr_getsigdefault
posix_spawnattr_getsigmask
posix_spawnattr_init
posix_spawnattr_setflags
posix_spawnattr_setpgroup
posix_spawnattr_setschedparam
posix_spawnattr_setschedpolicy
posix_spawnattr_setsigdefault
posix_spawnattr_setsigmask
posix_spawnp
preadv
pseudo_AF_HDRCMPLT
pseudo_AF_PFLOW
@@ -1127,6 +1186,7 @@ pseudo_AF_RTIP
pseudo_AF_XTP
pthread_attr_getguardsize
pthread_attr_getstack
pthread_attr_setguardsize
pthread_cancel
pthread_condattr_setclock
pthread_get_name_np
@@ -1153,6 +1213,7 @@ rand
readdir_r
readlinkat
reallocarray
reboot
recvmsg
regcomp
regerror
@@ -1182,6 +1243,7 @@ setgroups
sethostid
sethostname
setitimer
setlogin
setpriority
setproctitle
setprogname
@@ -1198,6 +1260,7 @@ shmget
shmid_ds
sigaltstack
siginfo_t
sigsuspend
sigwait
sockaddr_dl
sockpeercred
@@ -1209,6 +1272,8 @@ stack_t
statfs
strcasecmp
strcasestr
strftime
strftime_l
strncasecmp
strndup
strsignal
@@ -1216,6 +1281,7 @@ strtonum
sync
syscall
sysctl
tcp_info
telldir
tmpfs_args
truncate
@@ -1230,6 +1296,5 @@ utimensat
utmp
utrace
wait4
waitid
xucred
dirname
basename
+23 -1
View File
@@ -137,14 +137,15 @@ SO_PEERCRED
SO_PEERSEC
SO_PRIORITY
SO_PROTOCOL
SO_REUSEPORT
SO_RCVBUFFORCE
SO_REUSEPORT
SO_SNDBUFFORCE
TCFLSH
TCGETS
TCP_KEEPIDLE
TCSETS
TIOCGPGRP
TIOCSCTTY
TIOCSPGRP
UTSLENGTH
VDISCARD
@@ -180,33 +181,54 @@ bsearch
chroot
clearerr
difftime
endgrent
endpwent
endservent
epoll_create
epoll_create1
epoll_ctl
epoll_event
epoll_wait
explicit_bzero
fchdir
fmemopen
getdtablesize
getgrent
getgrgid
getgrgid_r
getgrnam
getgrnam_r
getgrouplist
getline
getpwent
getpwnam_r
getrlimit
getrusage
getservbyport
getservent
killpg
lockf
login_tty
madvise
memalign
nice
open_memstream
open_wmemstream
openpty
pipe2
pthread_condattr_setclock
qsort
reallocarray
setgrent
setpwent
setrlimit
setservent
sigtimedwait
sigwait
strcasecmp
strcasestr
strlcat
strlcpy
strncasecmp
strndup
strsignal
+1
View File
@@ -671,6 +671,7 @@ protoent
pselect
pthread_attr_destroy
pthread_attr_init
pthread_attr_getstacksize
pthread_attr_setdetachstate
pthread_attr_setstacksize
pthread_attr_t
+1
View File
@@ -247,6 +247,7 @@ localtime_s
lseek
lseek64
malloc
_msize
memchr
memcmp
memcpy
+11 -10
View File
@@ -57,29 +57,30 @@ mod t {
#[test]
fn test_cmsg_nxthdr() {
use std::ptr;
// Helps to align the buffer on the stack.
#[repr(align(8))]
struct Align8<T>(T);
let mut buffer = [0u8; 256];
const CAPACITY: usize = 512;
let mut buffer = Align8([0_u8; CAPACITY]);
let mut mhdr: msghdr = unsafe { mem::zeroed() };
let pmhdr = &mhdr as *const msghdr;
for start_ofs in 0..64 {
let pcmsghdr = &mut buffer[start_ofs] as *mut u8 as *mut cmsghdr;
let pcmsghdr = buffer.0.as_mut_ptr().cast::<cmsghdr>();
mhdr.msg_control = pcmsghdr as *mut c_void;
mhdr.msg_controllen = (160 - start_ofs) as _;
for cmsg_len in 0..64 {
for next_cmsg_len in 0..32 {
for i in buffer[start_ofs..].iter_mut() {
*i = 0;
}
unsafe {
pcmsghdr.cast::<u8>().write_bytes(0, CAPACITY);
(*pcmsghdr).cmsg_len = cmsg_len;
let libc_next = libc::CMSG_NXTHDR(pmhdr, pcmsghdr);
let next = cmsg_nxthdr(pmhdr, pcmsghdr);
let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr);
let next = cmsg_nxthdr(&mhdr, pcmsghdr);
assert_eq!(libc_next, next);
if libc_next != ptr::null_mut() {
(*libc_next).cmsg_len = next_cmsg_len;
let libc_next = libc::CMSG_NXTHDR(pmhdr, pcmsghdr);
let next = cmsg_nxthdr(pmhdr, pcmsghdr);
let libc_next = libc::CMSG_NXTHDR(&mhdr, pcmsghdr);
let next = cmsg_nxthdr(&mhdr, pcmsghdr);
assert_eq!(libc_next, next);
}
}
+1
View File
@@ -62,5 +62,6 @@ s! {
}
}
// From https://cs.opensource.google/fuchsia/fuchsia/+/main:zircon/third_party/ulib/musl/include/bits/signal.h;l=20-21;drc=0827b18ab9540c46f8037f407d17ea15a79e9ba7
pub const MINSIGSTKSZ: ::size_t = 6144;
pub const SIGSTKSZ: ::size_t = 12288;
+99 -2
View File
@@ -2602,6 +2602,7 @@ pub const PR_SET_MM_MAP: ::c_int = 14;
pub const PR_SET_MM_MAP_SIZE: ::c_int = 15;
pub const PR_SET_PTRACER: ::c_int = 0x59616d61;
pub const PR_SET_PTRACER_ANY: ::c_ulong = 0xffffffffffffffff;
pub const PR_SET_CHILD_SUBREAPER: ::c_int = 36;
pub const PR_GET_CHILD_SUBREAPER: ::c_int = 37;
@@ -2678,7 +2679,87 @@ pub const PT_GNU_STACK: u32 = 0x6474e551;
pub const PT_GNU_RELRO: u32 = 0x6474e552;
// Ethernet protocol IDs.
pub const ETH_P_LOOP: ::c_int = 0x0060;
pub const ETH_P_PUP: ::c_int = 0x0200;
pub const ETH_P_PUPAT: ::c_int = 0x0201;
pub const ETH_P_IP: ::c_int = 0x0800;
pub const ETH_P_X25: ::c_int = 0x0805;
pub const ETH_P_ARP: ::c_int = 0x0806;
pub const ETH_P_BPQ: ::c_int = 0x08FF;
pub const ETH_P_IEEEPUP: ::c_int = 0x0a00;
pub const ETH_P_IEEEPUPAT: ::c_int = 0x0a01;
pub const ETH_P_BATMAN: ::c_int = 0x4305;
pub const ETH_P_DEC: ::c_int = 0x6000;
pub const ETH_P_DNA_DL: ::c_int = 0x6001;
pub const ETH_P_DNA_RC: ::c_int = 0x6002;
pub const ETH_P_DNA_RT: ::c_int = 0x6003;
pub const ETH_P_LAT: ::c_int = 0x6004;
pub const ETH_P_DIAG: ::c_int = 0x6005;
pub const ETH_P_CUST: ::c_int = 0x6006;
pub const ETH_P_SCA: ::c_int = 0x6007;
pub const ETH_P_TEB: ::c_int = 0x6558;
pub const ETH_P_RARP: ::c_int = 0x8035;
pub const ETH_P_ATALK: ::c_int = 0x809B;
pub const ETH_P_AARP: ::c_int = 0x80F3;
pub const ETH_P_8021Q: ::c_int = 0x8100;
pub const ETH_P_IPX: ::c_int = 0x8137;
pub const ETH_P_IPV6: ::c_int = 0x86DD;
pub const ETH_P_PAUSE: ::c_int = 0x8808;
pub const ETH_P_SLOW: ::c_int = 0x8809;
pub const ETH_P_WCCP: ::c_int = 0x883E;
pub const ETH_P_MPLS_UC: ::c_int = 0x8847;
pub const ETH_P_MPLS_MC: ::c_int = 0x8848;
pub const ETH_P_ATMMPOA: ::c_int = 0x884c;
pub const ETH_P_PPP_DISC: ::c_int = 0x8863;
pub const ETH_P_PPP_SES: ::c_int = 0x8864;
pub const ETH_P_LINK_CTL: ::c_int = 0x886c;
pub const ETH_P_ATMFATE: ::c_int = 0x8884;
pub const ETH_P_PAE: ::c_int = 0x888E;
pub const ETH_P_AOE: ::c_int = 0x88A2;
pub const ETH_P_8021AD: ::c_int = 0x88A8;
pub const ETH_P_802_EX1: ::c_int = 0x88B5;
pub const ETH_P_TIPC: ::c_int = 0x88CA;
pub const ETH_P_8021AH: ::c_int = 0x88E7;
pub const ETH_P_MVRP: ::c_int = 0x88F5;
pub const ETH_P_1588: ::c_int = 0x88F7;
pub const ETH_P_PRP: ::c_int = 0x88FB;
pub const ETH_P_FCOE: ::c_int = 0x8906;
pub const ETH_P_TDLS: ::c_int = 0x890D;
pub const ETH_P_FIP: ::c_int = 0x8914;
pub const ETH_P_80221: ::c_int = 0x8917;
pub const ETH_P_LOOPBACK: ::c_int = 0x9000;
pub const ETH_P_QINQ1: ::c_int = 0x9100;
pub const ETH_P_QINQ2: ::c_int = 0x9200;
pub const ETH_P_QINQ3: ::c_int = 0x9300;
pub const ETH_P_EDSA: ::c_int = 0xDADA;
pub const ETH_P_AF_IUCV: ::c_int = 0xFBFB;
pub const ETH_P_802_3_MIN: ::c_int = 0x0600;
pub const ETH_P_802_3: ::c_int = 0x0001;
pub const ETH_P_AX25: ::c_int = 0x0002;
pub const ETH_P_ALL: ::c_int = 0x0003;
pub const ETH_P_802_2: ::c_int = 0x0004;
pub const ETH_P_SNAP: ::c_int = 0x0005;
pub const ETH_P_DDCMP: ::c_int = 0x0006;
pub const ETH_P_WAN_PPP: ::c_int = 0x0007;
pub const ETH_P_PPP_MP: ::c_int = 0x0008;
pub const ETH_P_LOCALTALK: ::c_int = 0x0009;
pub const ETH_P_CAN: ::c_int = 0x000C;
pub const ETH_P_CANFD: ::c_int = 0x000D;
pub const ETH_P_PPPTALK: ::c_int = 0x0010;
pub const ETH_P_TR_802_2: ::c_int = 0x0011;
pub const ETH_P_MOBITEX: ::c_int = 0x0015;
pub const ETH_P_CONTROL: ::c_int = 0x0016;
pub const ETH_P_IRDA: ::c_int = 0x0017;
pub const ETH_P_ECONET: ::c_int = 0x0018;
pub const ETH_P_HDLC: ::c_int = 0x0019;
pub const ETH_P_ARCNET: ::c_int = 0x001A;
pub const ETH_P_DSA: ::c_int = 0x001B;
pub const ETH_P_TRAILER: ::c_int = 0x001C;
pub const ETH_P_PHONET: ::c_int = 0x00F5;
pub const ETH_P_IEEE802154: ::c_int = 0x00F6;
pub const ETH_P_CAIF: ::c_int = 0x00F7;
pub const SFD_CLOEXEC: ::c_int = 0x080000;
@@ -2730,7 +2811,10 @@ pub const POSIX_MADV_DONTNEED: ::c_int = 4;
pub const RLIM_INFINITY: ::rlim_t = !0;
pub const RLIMIT_RTTIME: ::c_int = 15;
#[deprecated(since = "0.2.64", note = "Not stable across OS versions")]
pub const RLIMIT_NLIMITS: ::c_int = 16;
#[allow(deprecated)]
#[deprecated(since = "0.2.64", note = "Not stable across OS versions")]
pub const RLIM_NLIMITS: ::c_int = RLIMIT_NLIMITS;
pub const MAP_ANONYMOUS: ::c_int = MAP_ANON;
@@ -3149,6 +3233,9 @@ pub const O_DIRECT: ::c_int = 0x00000800;
pub const O_LARGEFILE: ::c_int = 0x00001000;
pub const O_NOFOLLOW: ::c_int = 0x00000080;
pub const HUGETLB_FLAG_ENCODE_SHIFT: u32 = 26;
pub const MAP_HUGE_SHIFT: u32 = 26;
// intentionally not public, only used for fd_set
cfg_if! {
if #[cfg(target_pointer_width = "32")] {
@@ -3270,7 +3357,7 @@ f! {
as ::c_uint
}
pub fn CMSG_LEN(len: ::c_uint) -> ::c_uint {
pub {const} fn CMSG_LEN(len: ::c_uint) -> ::c_uint {
(CMSG_ALIGN(::mem::size_of::<cmsghdr>()) + len as ::size_t) as ::c_uint
}
}
@@ -3686,6 +3773,10 @@ extern "C" {
pub fn pthread_exit(value: *mut ::c_void) -> !;
pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_getstacksize(
attr: *const ::pthread_attr_t,
stacksize: *mut ::size_t,
) -> ::c_int;
pub fn pthread_attr_setstacksize(attr: *mut ::pthread_attr_t, stack_size: ::size_t) -> ::c_int;
pub fn pthread_attr_setdetachstate(attr: *mut ::pthread_attr_t, state: ::c_int) -> ::c_int;
pub fn pthread_detach(thread: ::pthread_t) -> ::c_int;
@@ -3735,6 +3826,8 @@ extern "C" {
pub fn pthread_rwlock_unlock(lock: *mut pthread_rwlock_t) -> ::c_int;
pub fn pthread_rwlockattr_init(attr: *mut pthread_rwlockattr_t) -> ::c_int;
pub fn pthread_rwlockattr_destroy(attr: *mut pthread_rwlockattr_t) -> ::c_int;
pub fn pthread_getname_np(thread: ::pthread_t, name: *mut ::c_char, len: ::size_t) -> ::c_int;
pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int;
pub fn strerror_r(errnum: ::c_int, buf: *mut c_char, buflen: ::size_t) -> ::c_int;
pub fn getsockopt(
@@ -4016,7 +4109,7 @@ extern "C" {
host: *mut ::c_char,
hostlen: ::socklen_t,
serv: *mut ::c_char,
sevlen: ::socklen_t,
servlen: ::socklen_t,
flags: ::c_int,
) -> ::c_int;
pub fn reboot(how_to: ::c_int) -> ::c_int;
@@ -4160,6 +4253,7 @@ extern "C" {
attr: *const ::pthread_attr_t,
guardsize: *mut ::size_t,
) -> ::c_int;
pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int;
pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int;
pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int;
pub fn umount2(target: *const ::c_char, flags: ::c_int) -> ::c_int;
@@ -4259,6 +4353,9 @@ cfg_if! {
} else if #[cfg(any(target_arch = "x86_64"))] {
mod x86_64;
pub use self::x86_64::*;
} else if #[cfg(any(target_arch = "riscv64"))] {
mod riscv64;
pub use self::riscv64::*;
} else {
// Unknown target_arch
}
+44
View File
@@ -0,0 +1,44 @@
// From psABI Calling Convention for RV64
pub type c_char = u8;
pub type __u64 = ::c_ulonglong;
pub type wchar_t = i32;
pub type nlink_t = ::c_ulong;
pub type blksize_t = ::c_long;
pub type stat64 = stat;
s! {
pub struct stat {
pub st_dev: ::dev_t,
pub st_ino: ::ino_t,
pub st_nlink: ::nlink_t,
pub st_mode: ::mode_t,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
__pad0: ::c_int,
pub st_rdev: ::dev_t,
pub st_size: ::off_t,
pub st_blksize: ::blksize_t,
pub st_blocks: ::blkcnt_t,
pub st_atime: ::time_t,
pub st_atime_nsec: ::c_long,
pub st_mtime: ::time_t,
pub st_mtime_nsec: ::c_long,
pub st_ctime: ::time_t,
pub st_ctime_nsec: ::c_long,
__unused: [::c_long; 3],
}
// Not actually used, IPC calls just return ENOSYS
pub struct ipc_perm {
pub __ipc_perm_key: ::key_t,
pub uid: ::uid_t,
pub gid: ::gid_t,
pub cuid: ::uid_t,
pub cgid: ::gid_t,
pub mode: ::mode_t,
pub __seq: ::c_ushort,
__unused1: ::c_ulong,
__unused2: ::c_ulong,
}
}
+1 -4
View File
@@ -1,7 +1,4 @@
// libc port for HermitCore (https://hermitcore.org)
//
// Ported by Colin Fink <colin.finck@rwth-aachen.de>
// and Stefan Lankes <slankes@eonerc.rwth-aachen.de>
//! Hermit C types definition
pub type c_schar = i8;
pub type c_uchar = u8;
+12 -4
View File
@@ -1,8 +1,4 @@
//! libc - Raw FFI bindings to platforms' system libraries
//!
//! [Documentation for other platforms][pd].
//!
//! [pd]: https://rust-lang.github.io/libc/#platform-specific-documentation
#![crate_name = "libc"]
#![crate_type = "rlib"]
#![allow(
@@ -139,6 +135,12 @@ cfg_if! {
mod hermit;
pub use hermit::*;
} else if #[cfg(target_os = "teeos")] {
mod fixed_width_ints;
pub use fixed_width_ints::*;
mod teeos;
pub use teeos::*;
} else if #[cfg(all(target_env = "sgx", target_vendor = "fortanix"))] {
mod fixed_width_ints;
pub use fixed_width_ints::*;
@@ -151,6 +153,12 @@ cfg_if! {
mod wasi;
pub use wasi::*;
} else if #[cfg(target_os = "xous")] {
mod fixed_width_ints;
pub use fixed_width_ints::*;
mod xous;
pub use xous::*;
} else {
// non-supported targets: empty...
}
+6
View File
@@ -120,6 +120,12 @@ macro_rules! s_no_extra_traits {
);
}
macro_rules! missing {
($($(#[$attr:meta])* pub enum $i:ident {})*) => ($(
$(#[$attr])* #[allow(missing_copy_implementations)] pub enum $i { }
)*);
}
macro_rules! e {
($($(#[$attr:meta])* pub enum $i:ident { $($field:tt)* })*) => ($(
__item! {
+3
View File
@@ -1382,15 +1382,18 @@ s_paren! {
pub struct SceUid(pub i32);
#[repr(transparent)]
#[allow(dead_code)]
pub struct SceMpeg(*mut *mut c_void);
#[repr(transparent)]
#[allow(dead_code)]
pub struct SceMpegStream(*mut c_void);
#[repr(transparent)]
pub struct Mp3Handle(pub i32);
#[repr(transparent)]
#[allow(dead_code)]
pub struct RegHandle(u32);
}
+1385
View File
File diff suppressed because it is too large Load Diff
+3362
View File
File diff suppressed because it is too large Load Diff
+644
View File
@@ -0,0 +1,644 @@
pub type c_long = i64;
pub type c_ulong = u64;
s! {
pub struct sigset_t {
pub ss_set: [c_ulong; 4],
}
pub struct fd_set {
pub fds_bits: [c_long; 1024],
}
pub struct flock {
pub l_type: ::c_short,
pub l_whence: ::c_short,
pub l_sysid: ::c_uint,
pub l_pid: ::pid_t,
pub l_vfs: ::c_int,
pub l_start: ::off_t,
pub l_len: ::off_t,
}
pub struct statvfs {
pub f_bsize: ::c_ulong,
pub f_frsize: ::c_ulong,
pub f_blocks: ::fsblkcnt_t,
pub f_bfree: ::fsblkcnt_t,
pub f_bavail: ::fsblkcnt_t,
pub f_files: ::fsfilcnt_t,
pub f_ffree: ::fsfilcnt_t,
pub f_favail: ::fsfilcnt_t,
pub f_fsid: ::c_ulong,
pub f_basetype: [::c_char; 16],
pub f_flag: ::c_ulong,
pub f_namemax: ::c_ulong,
pub f_fstr: [::c_char; 32],
pub f_filler: [::c_ulong; 16]
}
pub struct pthread_rwlock_t {
__rw_word: [::c_long; 10],
}
pub struct pthread_cond_t {
__cv_word: [::c_long; 6],
}
pub struct pthread_mutex_t {
__mt_word: [::c_long; 8],
}
pub struct stat {
pub st_dev: ::dev_t,
pub st_ino: ::ino_t,
pub st_mode: ::mode_t,
pub st_nlink: ::nlink_t,
pub st_flag: ::c_ushort,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
pub st_rdev: ::dev_t,
pub st_ssize: ::c_int,
pub st_atime: ::st_timespec,
pub st_mtime: ::st_timespec,
pub st_ctime: ::st_timespec,
pub st_blksize: ::blksize_t,
pub st_blocks: ::blkcnt_t,
pub st_vfstype: ::c_int,
pub st_vfs: ::c_uint,
pub st_type: ::c_uint,
pub st_gen: ::c_uint,
pub st_reserved: [::c_uint; 9],
pub st_padto_ll: ::c_uint,
pub st_size: ::off_t,
}
pub struct statfs {
pub f_version: ::c_int,
pub f_type: ::c_int,
pub f_bsize: ::c_ulong,
pub f_blocks: ::fsblkcnt_t,
pub f_bfree: ::fsblkcnt_t,
pub f_bavail: ::fsblkcnt_t,
pub f_files: ::fsblkcnt_t,
pub f_ffree: ::fsblkcnt_t,
pub f_fsid: ::fsid64_t,
pub f_vfstype: ::c_int,
pub f_fsize: ::c_ulong,
pub f_vfsnumber: ::c_int,
pub f_vfsoff: ::c_int,
pub f_vfslen: ::c_int,
pub f_vfsvers: ::c_int,
pub f_fname: [::c_char; 32],
pub f_fpack: [::c_char; 32],
pub f_name_max: ::c_int,
}
pub struct aiocb {
pub aio_lio_opcode: ::c_int,
pub aio_fildes: ::c_int,
pub aio_word1: ::c_int,
pub aio_offset: ::off_t,
pub aio_buf: *mut ::c_void,
pub aio_return: ::ssize_t,
pub aio_errno: ::c_int,
pub aio_nbytes: ::size_t,
pub aio_reqprio: ::c_int,
pub aio_sigevent: ::sigevent,
pub aio_word2: ::c_int,
pub aio_fp: ::c_int,
pub aio_handle: *mut aiocb,
pub aio_reserved: [::c_uint; 2],
pub aio_sigev_tid: c_long,
}
pub struct ucontext_t {
pub __sc_onstack: ::c_int,
pub uc_sigmask: ::sigset_t,
pub __sc_uerror: ::c_int,
pub uc_mcontext: ::mcontext_t,
pub uc_link: *mut ucontext_t,
pub uc_stack: ::stack_t,
// Should be pointer to __extctx_t
pub __extctx: *mut ::c_void,
pub __extctx_magic: ::c_int,
pub __pad: [::c_int; 1],
}
pub struct mcontext_t {
pub gpr: [::c_ulonglong; 32],
pub msr: ::c_ulonglong,
pub iar: ::c_ulonglong,
pub lr: ::c_ulonglong,
pub ctr: ::c_ulonglong,
pub cr: ::c_uint,
pub xer: ::c_uint,
pub fpscr: ::c_uint,
pub fpscrx: ::c_uint,
pub except: [::c_ulonglong; 1],
// Should be array of double type
pub fpr: [::uint64_t; 32],
pub fpeu: ::c_char,
pub fpinfo: ::c_char,
pub fpscr24_31: ::c_char,
pub pad: [::c_char; 1],
pub excp_type: ::c_int,
}
pub struct utmpx {
pub ut_user: [::c_char; 256],
pub ut_id: [::c_char; 14],
pub ut_line: [::c_char; 64],
pub ut_pid: ::pid_t,
pub ut_type: ::c_short,
pub ut_tv: ::timeval,
pub ut_host: [::c_char; 256],
pub __dbl_word_pad: ::c_int,
pub __reservedA: [::c_int; 2],
pub __reservedV: [::c_int; 6],
}
pub struct pthread_spinlock_t {
pub __sp_word: [::c_long; 3],
}
pub struct pthread_barrier_t {
pub __br_word: [::c_long; 5],
}
pub struct msqid_ds {
pub msg_perm: ::ipc_perm,
pub msg_first: ::c_uint,
pub msg_last: ::c_uint,
pub msg_cbytes: ::c_uint,
pub msg_qnum: ::c_uint,
pub msg_qbytes: ::c_ulong,
pub msg_lspid: ::pid_t,
pub msg_lrpid: ::pid_t,
pub msg_stime: ::time_t,
pub msg_rtime: ::time_t,
pub msg_ctime: ::time_t,
pub msg_rwait: ::c_int,
pub msg_wwait: ::c_int,
pub msg_reqevents: ::c_ushort,
}
}
s_no_extra_traits! {
pub struct siginfo_t {
pub si_signo: ::c_int,
pub si_errno: ::c_int,
pub si_code: ::c_int,
pub si_pid: ::pid_t,
pub si_uid: ::uid_t,
pub si_status: ::c_int,
pub si_addr: *mut ::c_void,
pub si_band: ::c_long,
pub si_value: ::sigval,
pub __si_flags: ::c_int,
pub __pad: [::c_int; 3],
}
#[cfg(libc_union)]
pub union _kernel_simple_lock {
pub _slock: ::c_long,
// Should be pointer to 'lock_data_instrumented'
pub _slockp: *mut ::c_void,
}
pub struct fileops_t {
pub fo_rw: extern fn(file: *mut file, rw: ::uio_rw, io: *mut ::c_void, ext: ::c_long,
secattr: *mut ::c_void) -> ::c_int,
pub fo_ioctl: extern fn(file: *mut file, a: ::c_long, b: ::caddr_t, c: ::c_long,
d: ::c_long) -> ::c_int,
pub fo_select: extern fn(file: *mut file, a: ::c_int, b: *mut ::c_ushort,
c: extern fn()) -> ::c_int,
pub fo_close: extern fn(file: *mut file) -> ::c_int,
pub fo_fstat: extern fn(file: *mut file, sstat: *mut ::stat) -> ::c_int,
}
pub struct file {
pub f_flag: ::c_long,
pub f_count: ::c_int,
pub f_options: ::c_short,
pub f_type: ::c_short,
// Should be pointer to 'vnode'
pub f_data: *mut ::c_void,
pub f_offset: ::c_longlong,
pub f_dir_off: ::c_long,
// Should be pointer to 'cred'
pub f_cred: *mut ::c_void,
#[cfg(libc_union)]
pub f_lock: _kernel_simple_lock,
#[cfg(libc_union)]
pub f_offset_lock: _kernel_simple_lock,
pub f_vinfo: ::caddr_t,
pub f_ops: *mut fileops_t,
pub f_parentp: ::caddr_t,
pub f_fnamep: ::caddr_t,
pub f_fdata: [::c_char; 160],
}
#[cfg(libc_union)]
pub union __ld_info_file {
pub _ldinfo_fd: ::c_int,
pub _ldinfo_fp: *mut file,
pub _core_offset: ::c_long,
}
pub struct ld_info {
pub ldinfo_next: ::c_uint,
pub ldinfo_flags: ::c_uint,
#[cfg(libc_union)]
pub _file: __ld_info_file,
pub ldinfo_textorg: *mut ::c_void,
pub ldinfo_textsize: ::c_ulong,
pub ldinfo_dataorg: *mut ::c_void,
pub ldinfo_datasize: ::c_ulong,
pub ldinfo_filename: [::c_char; 2],
}
#[cfg(libc_union)]
pub union __pollfd_ext_u {
pub addr: *mut ::c_void,
pub data32: u32,
pub data: u64,
}
pub struct pollfd_ext {
pub fd: ::c_int,
pub events: ::c_ushort,
pub revents: ::c_ushort,
#[cfg(libc_union)]
pub data: __pollfd_ext_u,
}
}
impl siginfo_t {
pub unsafe fn si_addr(&self) -> *mut ::c_void {
self.si_addr
}
pub unsafe fn si_value(&self) -> ::sigval {
self.si_value
}
pub unsafe fn si_pid(&self) -> ::pid_t {
self.si_pid
}
pub unsafe fn si_uid(&self) -> ::uid_t {
self.si_uid
}
pub unsafe fn si_status(&self) -> ::c_int {
self.si_status
}
}
cfg_if! {
if #[cfg(feature = "extra_traits")] {
impl PartialEq for siginfo_t {
fn eq(&self, other: &siginfo_t) -> bool {
#[cfg(libc_union)]
let value_eq = self.si_value == other.si_value;
#[cfg(not(libc_union))]
let value_eq = true;
self.si_signo == other.si_signo
&& self.si_errno == other.si_errno
&& self.si_code == other.si_code
&& self.si_pid == other.si_pid
&& self.si_uid == other.si_uid
&& self.si_status == other.si_status
&& self.si_addr == other.si_addr
&& self.si_band == other.si_band
&& self.__si_flags == other.__si_flags
&& value_eq
}
}
impl Eq for siginfo_t {}
impl ::fmt::Debug for siginfo_t {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let mut struct_formatter = f.debug_struct("siginfo_t");
struct_formatter.field("si_signo", &self.si_signo);
struct_formatter.field("si_errno", &self.si_errno);
struct_formatter.field("si_code", &self.si_code);
struct_formatter.field("si_pid", &self.si_pid);
struct_formatter.field("si_uid", &self.si_uid);
struct_formatter.field("si_status", &self.si_status);
struct_formatter.field("si_addr", &self.si_addr);
struct_formatter.field("si_band", &self.si_band);
#[cfg(libc_union)]
struct_formatter.field("si_value", &self.si_value);
struct_formatter.field("__si_flags", &self.__si_flags);
struct_formatter.finish()
}
}
impl ::hash::Hash for siginfo_t {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.si_signo.hash(state);
self.si_errno.hash(state);
self.si_code.hash(state);
self.si_pid.hash(state);
self.si_uid.hash(state);
self.si_status.hash(state);
self.si_addr.hash(state);
self.si_band.hash(state);
#[cfg(libc_union)]
self.si_value.hash(state);
self.__si_flags.hash(state);
}
}
#[cfg(libc_union)]
impl PartialEq for _kernel_simple_lock {
fn eq(&self, other: &_kernel_simple_lock) -> bool {
unsafe {
self._slock == other._slock
&& self._slockp == other._slockp
}
}
}
#[cfg(libc_union)]
impl Eq for _kernel_simple_lock {}
#[cfg(libc_union)]
impl ::fmt::Debug for _kernel_simple_lock {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("_kernel_simple_lock")
.field("_slock", unsafe { &self._slock })
.field("_slockp", unsafe { &self._slockp })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for _kernel_simple_lock {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self._slock.hash(state);
self._slockp.hash(state);
}
}
}
impl PartialEq for fileops_t {
fn eq(&self, other: &fileops_t) -> bool {
self.fo_rw == other.fo_rw
&& self.fo_ioctl == other.fo_ioctl
&& self.fo_select == other.fo_select
&& self.fo_close == other.fo_close
&& self.fo_fstat == other.fo_fstat
}
}
impl Eq for fileops_t {}
impl ::fmt::Debug for fileops_t {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let mut struct_formatter = f.debug_struct("fileops_t");
struct_formatter.field("fo_rw", &self.fo_rw);
struct_formatter.field("fo_ioctl", &self.fo_ioctl);
struct_formatter.field("fo_select", &self.fo_select);
struct_formatter.field("fo_close", &self.fo_close);
struct_formatter.field("fo_fstat", &self.fo_fstat);
struct_formatter.finish()
}
}
impl ::hash::Hash for fileops_t {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.fo_rw.hash(state);
self.fo_ioctl.hash(state);
self.fo_select.hash(state);
self.fo_close.hash(state);
self.fo_fstat.hash(state);
}
}
impl PartialEq for file {
fn eq(&self, other: &file) -> bool {
#[cfg(libc_union)]
let lock_eq = self.f_lock == other.f_lock
&& self.f_offset_lock == other.f_offset_lock;
#[cfg(not(libc_union))]
let lock_eq = true;
self.f_flag == other.f_flag
&& self.f_count == other.f_count
&& self.f_options == other.f_options
&& self.f_type == other.f_type
&& self.f_data == other.f_data
&& self.f_offset == other.f_offset
&& self.f_dir_off == other.f_dir_off
&& self.f_cred == other.f_cred
&& self.f_vinfo == other.f_vinfo
&& self.f_ops == other.f_ops
&& self.f_parentp == other.f_parentp
&& self.f_fnamep == other.f_fnamep
&& self.f_fdata == other.f_fdata
&& lock_eq
}
}
impl Eq for file {}
impl ::fmt::Debug for file {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let mut struct_formatter = f.debug_struct("file");
struct_formatter.field("f_flag", &self.f_flag);
struct_formatter.field("f_count", &self.f_count);
struct_formatter.field("f_options", &self.f_options);
struct_formatter.field("f_type", &self.f_type);
struct_formatter.field("f_data", &self.f_data);
struct_formatter.field("f_offset", &self.f_offset);
struct_formatter.field("f_dir_off", &self.f_dir_off);
struct_formatter.field("f_cred", &self.f_cred);
#[cfg(libc_union)]
struct_formatter.field("f_lock", &self.f_lock);
#[cfg(libc_union)]
struct_formatter.field("f_offset_lock", &self.f_offset_lock);
struct_formatter.field("f_vinfo", &self.f_vinfo);
struct_formatter.field("f_ops", &self.f_ops);
struct_formatter.field("f_parentp", &self.f_parentp);
struct_formatter.field("f_fnamep", &self.f_fnamep);
struct_formatter.field("f_fdata", &self.f_fdata);
struct_formatter.finish()
}
}
impl ::hash::Hash for file {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.f_flag.hash(state);
self.f_count.hash(state);
self.f_options.hash(state);
self.f_type.hash(state);
self.f_data.hash(state);
self.f_offset.hash(state);
self.f_dir_off.hash(state);
self.f_cred.hash(state);
#[cfg(libc_union)]
self.f_lock.hash(state);
#[cfg(libc_union)]
self.f_offset_lock.hash(state);
self.f_vinfo.hash(state);
self.f_ops.hash(state);
self.f_parentp.hash(state);
self.f_fnamep.hash(state);
self.f_fdata.hash(state);
}
}
#[cfg(libc_union)]
impl PartialEq for __ld_info_file {
fn eq(&self, other: &__ld_info_file) -> bool {
unsafe {
self._ldinfo_fd == other._ldinfo_fd
&& self._ldinfo_fp == other._ldinfo_fp
&& self._core_offset == other._core_offset
}
}
}
#[cfg(libc_union)]
impl Eq for __ld_info_file {}
#[cfg(libc_union)]
impl ::fmt::Debug for __ld_info_file {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("__ld_info_file")
.field("_ldinfo_fd", unsafe { &self._ldinfo_fd })
.field("_ldinfo_fp", unsafe { &self._ldinfo_fp })
.field("_core_offset", unsafe { &self._core_offset })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __ld_info_file {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self._ldinfo_fd.hash(state);
self._ldinfo_fp.hash(state);
self._core_offset.hash(state);
}
}
}
impl PartialEq for ld_info {
fn eq(&self, other: &ld_info) -> bool {
#[cfg(libc_union)]
let file_eq = self._file == other._file;
#[cfg(not(libc_union))]
let file_eq = true;
self.ldinfo_next == other.ldinfo_next
&& self.ldinfo_flags == other.ldinfo_flags
&& self.ldinfo_textorg == other.ldinfo_textorg
&& self.ldinfo_textsize == other.ldinfo_textsize
&& self.ldinfo_dataorg == other.ldinfo_dataorg
&& self.ldinfo_datasize == other.ldinfo_datasize
&& self.ldinfo_filename == other.ldinfo_filename
&& file_eq
}
}
impl Eq for ld_info {}
impl ::fmt::Debug for ld_info {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let mut struct_formatter = f.debug_struct("ld_info");
struct_formatter.field("ldinfo_next", &self.ldinfo_next);
struct_formatter.field("ldinfo_flags", &self.ldinfo_flags);
struct_formatter.field("ldinfo_textorg", &self.ldinfo_textorg);
struct_formatter.field("ldinfo_textsize", &self.ldinfo_textsize);
struct_formatter.field("ldinfo_dataorg", &self.ldinfo_dataorg);
struct_formatter.field("ldinfo_datasize", &self.ldinfo_datasize);
struct_formatter.field("ldinfo_filename", &self.ldinfo_filename);
#[cfg(libc_union)]
struct_formatter.field("_file", &self._file);
struct_formatter.finish()
}
}
impl ::hash::Hash for ld_info {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.ldinfo_next.hash(state);
self.ldinfo_flags.hash(state);
self.ldinfo_textorg.hash(state);
self.ldinfo_textsize.hash(state);
self.ldinfo_dataorg.hash(state);
self.ldinfo_datasize.hash(state);
self.ldinfo_filename.hash(state);
#[cfg(libc_union)]
self._file.hash(state);
}
}
#[cfg(libc_union)]
impl PartialEq for __pollfd_ext_u {
fn eq(&self, other: &__pollfd_ext_u) -> bool {
unsafe {
self.addr == other.addr
&& self.data32 == other.data32
&& self.data == other.data
}
}
}
#[cfg(libc_union)]
impl Eq for __pollfd_ext_u {}
#[cfg(libc_union)]
impl ::fmt::Debug for __pollfd_ext_u {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("__pollfd_ext_u")
.field("addr", unsafe { &self.addr })
.field("data32", unsafe { &self.data32 })
.field("data", unsafe { &self.data })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __pollfd_ext_u {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self.addr.hash(state);
self.data.hash(state);
self.data32.hash(state);
}
}
}
impl PartialEq for pollfd_ext {
fn eq(&self, other: &pollfd_ext) -> bool {
#[cfg(libc_union)]
let data_eq = self.data == other.data;
#[cfg(not(libc_union))]
let data_eq = true;
self.fd == other.fd
&& self.events == other.events
&& self.revents == other.revents
&& data_eq
}
}
impl Eq for pollfd_ext {}
impl ::fmt::Debug for pollfd_ext {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let mut struct_formatter = f.debug_struct("pollfd_ext");
struct_formatter.field("fd", &self.fd);
struct_formatter.field("events", &self.events);
struct_formatter.field("revents", &self.revents);
#[cfg(libc_union)]
struct_formatter.field("data", &self.data);
struct_formatter.finish()
}
}
impl ::hash::Hash for pollfd_ext {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.fd.hash(state);
self.events.hash(state);
self.revents.hash(state);
#[cfg(libc_union)]
self.data.hash(state);
}
}
}
}
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t {
__mt_word: [0, 2, 0, 0, 0, 0, 0, 0],
};
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t {
__cv_word: [0, 0, 0, 0, 2, 0],
};
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t {
__rw_word: [2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
};
pub const RLIM_INFINITY: ::c_ulong = 0x7fffffffffffffff;
extern "C" {
pub fn getsystemcfg(label: ::c_int) -> ::c_ulong;
}
-1
View File
@@ -15,7 +15,6 @@ s! {
pub uc_link: *mut ::ucontext_t,
pub uc_mcsize: usize,
pub uc_mcontext: mcontext_t,
__mcontext_data: __darwin_mcontext64,
}
pub struct __darwin_mcontext64 {
+8
View File
@@ -0,0 +1,8 @@
s! {
pub struct ctl_info {
pub ctl_id: u32,
pub ctl_name: [::c_char; MAX_KCTL_NAME],
}
}
pub const MAX_KCTL_NAME: usize = 96;
+609 -14
View File
@@ -145,6 +145,16 @@ pub type CCRNGStatus = ::CCCryptorStatus;
pub type copyfile_state_t = *mut ::c_void;
pub type copyfile_flags_t = u32;
pub type copyfile_callback_t = ::Option<
extern "C" fn(
::c_int,
::c_int,
copyfile_state_t,
*const ::c_char,
*const ::c_char,
*mut ::c_void,
) -> ::c_int,
>;
pub type attrgroup_t = u32;
pub type vol_capabilities_set_t = [u32; 4];
@@ -368,6 +378,25 @@ s! {
pub fst_bytesalloc: ::off_t,
}
pub struct fpunchhole_t {
pub fp_flags: ::c_uint, /* unused */
pub reserved: ::c_uint, /* (to maintain 8-byte alignment) */
pub fp_offset: ::off_t, /* IN: start of the region */
pub fp_length: ::off_t, /* IN: size of the region */
}
pub struct ftrimactivefile_t {
pub fta_offset: ::off_t,
pub fta_length: ::off_t,
}
pub struct fspecread_t {
pub fsr_flags: ::c_uint,
pub reserved: ::c_uint,
pub fsr_offset: ::off_t,
pub fsr_length: ::off_t,
}
pub struct radvisory {
pub ra_offset: ::off_t,
pub ra_count: ::c_int,
@@ -435,6 +464,80 @@ s! {
pub ifm_data: if_data,
}
pub struct ifa_msghdr {
pub ifam_msglen: ::c_ushort,
pub ifam_version: ::c_uchar,
pub ifam_type: ::c_uchar,
pub ifam_addrs: ::c_int,
pub ifam_flags: ::c_int,
pub ifam_index: ::c_ushort,
pub ifam_metric: ::c_int,
}
pub struct ifma_msghdr {
pub ifmam_msglen: ::c_ushort,
pub ifmam_version: ::c_uchar,
pub ifmam_type: ::c_uchar,
pub ifmam_addrs: ::c_int,
pub ifmam_flags: ::c_int,
pub ifmam_index: ::c_ushort,
}
pub struct ifma_msghdr2 {
pub ifmam_msglen: ::c_ushort,
pub ifmam_version: ::c_uchar,
pub ifmam_type: ::c_uchar,
pub ifmam_addrs: ::c_int,
pub ifmam_flags: ::c_int,
pub ifmam_index: ::c_ushort,
pub ifmam_refcount: i32,
}
pub struct rt_metrics {
pub rmx_locks: u32,
pub rmx_mtu: u32,
pub rmx_hopcount: u32,
pub rmx_expire: i32,
pub rmx_recvpipe: u32,
pub rmx_sendpipe: u32,
pub rmx_ssthresh: u32,
pub rmx_rtt: u32,
pub rmx_rttvar: u32,
pub rmx_pksent: u32,
pub rmx_state: u32,
pub rmx_filler: [u32; 3],
}
pub struct rt_msghdr {
pub rtm_msglen: ::c_ushort,
pub rtm_version: ::c_uchar,
pub rtm_type: ::c_uchar,
pub rtm_index: ::c_ushort,
pub rtm_flags: ::c_int,
pub rtm_addrs: ::c_int,
pub rtm_pid: ::pid_t,
pub rtm_seq: ::c_int,
pub rtm_errno: ::c_int,
pub rtm_use: ::c_int,
pub rtm_inits: u32,
pub rtm_rmx: rt_metrics,
}
pub struct rt_msghdr2 {
pub rtm_msglen: ::c_ushort,
pub rtm_version: ::c_uchar,
pub rtm_type: ::c_uchar,
pub rtm_index: ::c_ushort,
pub rtm_flags: ::c_int,
pub rtm_addrs: ::c_int,
pub rtm_refcnt: i32,
pub rtm_parentflags: ::c_int,
pub rtm_reserved: ::c_int,
pub rtm_use: ::c_int,
pub rtm_inits: u32,
pub rtm_rmx: rt_metrics,
}
pub struct termios {
pub c_iflag: ::tcflag_t,
pub c_oflag: ::tcflag_t,
@@ -694,7 +797,7 @@ s! {
pub struct sockaddr_ndrv {
pub snd_len: ::c_uchar,
pub snd_family: ::c_uchar,
pub snd_name: [::c_uchar; 16] // IFNAMSIZ from if.h
pub snd_name: [::c_uchar; ::IFNAMSIZ],
}
// sys/socket.h
@@ -1026,6 +1129,58 @@ s! {
pub validattr: attribute_set_t,
pub nativeattr: attribute_set_t,
}
#[cfg_attr(libc_packedN, repr(packed(4)))]
pub struct ifconf {
pub ifc_len: ::c_int,
#[cfg(libc_union)]
pub ifc_ifcu: __c_anonymous_ifc_ifcu,
#[cfg(not(libc_union))]
pub ifc_ifcu: *mut ifreq,
}
#[cfg_attr(libc_align, repr(align(8)))]
pub struct tcp_connection_info {
pub tcpi_state: u8,
pub tcpi_snd_wscale: u8,
pub tcpi_rcv_wscale: u8,
__pad1: u8,
pub tcpi_options: u32,
pub tcpi_flags: u32,
pub tcpi_rto: u32,
pub tcpi_maxseg: u32,
pub tcpi_snd_ssthresh: u32,
pub tcpi_snd_cwnd: u32,
pub tcpi_snd_wnd: u32,
pub tcpi_snd_sbbytes: u32,
pub tcpi_rcv_wnd: u32,
pub tcpi_rttcur: u32,
pub tcpi_srtt: u32,
pub tcpi_rttvar: u32,
pub tcpi_tfo_cookie_req: u32,
pub tcpi_tfo_cookie_rcv: u32,
pub tcpi_tfo_syn_loss: u32,
pub tcpi_tfo_syn_data_sent: u32,
pub tcpi_tfo_syn_data_acked: u32,
pub tcpi_tfo_syn_data_rcv: u32,
pub tcpi_tfo_cookie_req_rcv: u32,
pub tcpi_tfo_cookie_sent: u32,
pub tcpi_tfo_cookie_invalid: u32,
pub tcpi_tfo_cookie_wrong: u32,
pub tcpi_tfo_no_cookie_rcv: u32,
pub tcpi_tfo_heuristics_disable: u32,
pub tcpi_tfo_send_blackhole: u32,
pub tcpi_tfo_recv_blackhole: u32,
pub tcpi_tfo_onebyte_proxy: u32,
__pad2: u32,
pub tcpi_txpackets: u64,
pub tcpi_txbytes: u64,
pub tcpi_txretransmitbytes: u64,
pub tcpi_rxpackets: u64,
pub tcpi_rxbytes: u64,
pub tcpi_rxoutoforderbytes: u64,
pub tcpi_rxretransmitpackets: u64,
}
}
s_no_extra_traits! {
@@ -1307,6 +1462,69 @@ s_no_extra_traits! {
pub struct os_unfair_lock_s {
_os_unfair_lock_opaque: u32,
}
#[cfg_attr(libc_packedN, repr(packed(1)))]
pub struct sockaddr_vm {
pub svm_len: ::c_uchar,
pub svm_family: ::sa_family_t,
pub svm_reserved1: ::c_ushort,
pub svm_port: ::c_uint,
pub svm_cid: ::c_uint,
}
pub struct ifdevmtu {
pub ifdm_current: ::c_int,
pub ifdm_min: ::c_int,
pub ifdm_max: ::c_int,
}
#[cfg(libc_union)]
pub union __c_anonymous_ifk_data {
pub ifk_ptr: *mut ::c_void,
pub ifk_value: ::c_int,
}
#[cfg_attr(libc_packedN, repr(packed(4)))]
pub struct ifkpi {
pub ifk_module_id: ::c_uint,
pub ifk_type: ::c_uint,
#[cfg(libc_union)]
pub ifk_data: __c_anonymous_ifk_data,
}
#[cfg(libc_union)]
pub union __c_anonymous_ifr_ifru {
pub ifru_addr: ::sockaddr,
pub ifru_dstaddr: ::sockaddr,
pub ifru_broadaddr: ::sockaddr,
pub ifru_flags: ::c_short,
pub ifru_metrics: ::c_int,
pub ifru_mtu: ::c_int,
pub ifru_phys: ::c_int,
pub ifru_media: ::c_int,
pub ifru_intval: ::c_int,
pub ifru_data: *mut ::c_char,
pub ifru_devmtu: ifdevmtu,
pub ifru_kpi: ifkpi,
pub ifru_wake_flags: u32,
pub ifru_route_refcnt: u32,
pub ifru_cap: [::c_int; 2],
pub ifru_functional_type: u32,
}
pub struct ifreq {
pub ifr_name: [::c_char; ::IFNAMSIZ],
#[cfg(libc_union)]
pub ifr_ifru: __c_anonymous_ifr_ifru,
#[cfg(not(libc_union))]
pub ifr_ifru: ::sockaddr,
}
#[cfg(libc_union)]
pub union __c_anonymous_ifc_ifcu {
pub ifcu_buf: *mut ::c_char,
pub ifcu_req: *mut ifreq,
}
}
impl siginfo_t {
@@ -2609,6 +2827,268 @@ cfg_if! {
self._os_unfair_lock_opaque.hash(state);
}
}
impl PartialEq for sockaddr_vm {
fn eq(&self, other: &sockaddr_vm) -> bool {
self.svm_len == other.svm_len
&& self.svm_family == other.svm_family
&& self.svm_reserved1 == other.svm_reserved1
&& self.svm_port == other.svm_port
&& self.svm_cid == other.svm_cid
}
}
impl Eq for sockaddr_vm {}
impl ::fmt::Debug for sockaddr_vm {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let svm_len = self.svm_len;
let svm_family = self.svm_family;
let svm_reserved1 = self.svm_reserved1;
let svm_port = self.svm_port;
let svm_cid = self.svm_cid;
f.debug_struct("sockaddr_vm")
.field("svm_len",&svm_len)
.field("svm_family",&svm_family)
.field("svm_reserved1",&svm_reserved1)
.field("svm_port",&svm_port)
.field("svm_cid",&svm_cid)
.finish()
}
}
impl ::hash::Hash for sockaddr_vm {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
let svm_len = self.svm_len;
let svm_family = self.svm_family;
let svm_reserved1 = self.svm_reserved1;
let svm_port = self.svm_port;
let svm_cid = self.svm_cid;
svm_len.hash(state);
svm_family.hash(state);
svm_reserved1.hash(state);
svm_port.hash(state);
svm_cid.hash(state);
}
}
impl PartialEq for ifdevmtu {
fn eq(&self, other: &ifdevmtu) -> bool {
self.ifdm_current == other.ifdm_current
&& self.ifdm_min == other.ifdm_min
&& self.ifdm_max == other.ifdm_max
}
}
impl Eq for ifdevmtu {}
impl ::fmt::Debug for ifdevmtu {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("ifdevmtu")
.field("ifdm_current", &self.ifdm_current)
.field("ifdm_min", &self.ifdm_min)
.field("ifdm_max", &self.ifdm_max)
.finish()
}
}
impl ::hash::Hash for ifdevmtu {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.ifdm_current.hash(state);
self.ifdm_min.hash(state);
self.ifdm_max.hash(state);
}
}
#[cfg(libc_union)]
impl PartialEq for __c_anonymous_ifk_data {
fn eq(&self, other: &__c_anonymous_ifk_data) -> bool {
unsafe {
self.ifk_ptr == other.ifk_ptr
&& self.ifk_value == other.ifk_value
}
}
}
#[cfg(libc_union)]
impl Eq for __c_anonymous_ifk_data {}
#[cfg(libc_union)]
impl ::fmt::Debug for __c_anonymous_ifk_data {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("__c_anonymous_ifk_data")
.field("ifk_ptr", unsafe { &self.ifk_ptr })
.field("ifk_value", unsafe { &self.ifk_value })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __c_anonymous_ifk_data {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self.ifk_ptr.hash(state);
self.ifk_value.hash(state);
}
}
}
impl PartialEq for ifkpi {
fn eq(&self, other: &ifkpi) -> bool {
self.ifk_module_id == other.ifk_module_id
&& self.ifk_type == other.ifk_type
}
}
impl Eq for ifkpi {}
impl ::fmt::Debug for ifkpi {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("ifkpi")
.field("ifk_module_id", &self.ifk_module_id)
.field("ifk_type", &self.ifk_type)
.finish()
}
}
impl ::hash::Hash for ifkpi {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.ifk_module_id.hash(state);
self.ifk_type.hash(state);
}
}
#[cfg(libc_union)]
impl PartialEq for __c_anonymous_ifr_ifru {
fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool {
unsafe {
self.ifru_addr == other.ifru_addr
&& self.ifru_dstaddr == other.ifru_dstaddr
&& self.ifru_broadaddr == other.ifru_broadaddr
&& self.ifru_flags == other.ifru_flags
&& self.ifru_metrics == other.ifru_metrics
&& self.ifru_mtu == other.ifru_mtu
&& self.ifru_phys == other.ifru_phys
&& self.ifru_media == other.ifru_media
&& self.ifru_intval == other.ifru_intval
&& self.ifru_data == other.ifru_data
&& self.ifru_devmtu == other.ifru_devmtu
&& self.ifru_kpi == other.ifru_kpi
&& self.ifru_wake_flags == other.ifru_wake_flags
&& self.ifru_route_refcnt == other.ifru_route_refcnt
&& self.ifru_cap.iter().zip(other.ifru_cap.iter()).all(|(a,b)| a == b)
&& self.ifru_functional_type == other.ifru_functional_type
}
}
}
#[cfg(libc_union)]
impl Eq for __c_anonymous_ifr_ifru {}
#[cfg(libc_union)]
impl ::fmt::Debug for __c_anonymous_ifr_ifru {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("__c_anonymous_ifr_ifru")
.field("ifru_addr", unsafe { &self.ifru_addr })
.field("ifru_dstaddr", unsafe { &self.ifru_dstaddr })
.field("ifru_broadaddr", unsafe { &self.ifru_broadaddr })
.field("ifru_flags", unsafe { &self.ifru_flags })
.field("ifru_metrics", unsafe { &self.ifru_metrics })
.field("ifru_mtu", unsafe { &self.ifru_mtu })
.field("ifru_phys", unsafe { &self.ifru_phys })
.field("ifru_media", unsafe { &self.ifru_media })
.field("ifru_intval", unsafe { &self.ifru_intval })
.field("ifru_data", unsafe { &self.ifru_data })
.field("ifru_devmtu", unsafe { &self.ifru_devmtu })
.field("ifru_kpi", unsafe { &self.ifru_kpi })
.field("ifru_wake_flags", unsafe { &self.ifru_wake_flags })
.field("ifru_route_refcnt", unsafe { &self.ifru_route_refcnt })
.field("ifru_cap", unsafe { &self.ifru_cap })
.field("ifru_functional_type", unsafe { &self.ifru_functional_type })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __c_anonymous_ifr_ifru {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self.ifru_addr.hash(state);
self.ifru_dstaddr.hash(state);
self.ifru_broadaddr.hash(state);
self.ifru_flags.hash(state);
self.ifru_metrics.hash(state);
self.ifru_mtu.hash(state);
self.ifru_phys.hash(state);
self.ifru_media.hash(state);
self.ifru_intval.hash(state);
self.ifru_data.hash(state);
self.ifru_devmtu.hash(state);
self.ifru_kpi.hash(state);
self.ifru_wake_flags.hash(state);
self.ifru_route_refcnt.hash(state);
self.ifru_cap.hash(state);
self.ifru_functional_type.hash(state);
}
}
}
impl PartialEq for ifreq {
fn eq(&self, other: &ifreq) -> bool {
self.ifr_name == other.ifr_name
&& self.ifr_ifru == other.ifr_ifru
}
}
impl Eq for ifreq {}
impl ::fmt::Debug for ifreq {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("ifreq")
.field("ifr_name", &self.ifr_name)
.field("ifr_ifru", &self.ifr_ifru)
.finish()
}
}
impl ::hash::Hash for ifreq {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.ifr_name.hash(state);
self.ifr_ifru.hash(state);
}
}
#[cfg(libc_union)]
impl Eq for __c_anonymous_ifc_ifcu {}
#[cfg(libc_union)]
impl PartialEq for __c_anonymous_ifc_ifcu {
fn eq(&self, other: &__c_anonymous_ifc_ifcu) -> bool {
unsafe {
self.ifcu_buf == other.ifcu_buf &&
self.ifcu_req == other.ifcu_req
}
}
}
#[cfg(libc_union)]
impl ::fmt::Debug for __c_anonymous_ifc_ifcu {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("ifc_ifcu")
.field("ifcu_buf", unsafe { &self.ifcu_buf })
.field("ifcu_req", unsafe { &self.ifcu_req })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __c_anonymous_ifc_ifcu {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe { self.ifcu_buf.hash(state) };
unsafe { self.ifcu_req.hash(state) };
}
}
}
}
@@ -3102,6 +3582,9 @@ pub const F_GLOBAL_NOCACHE: ::c_int = 55;
pub const F_NODIRECT: ::c_int = 62;
pub const F_LOG2PHYS_EXT: ::c_int = 65;
pub const F_BARRIERFSYNC: ::c_int = 85;
pub const F_PUNCHHOLE: ::c_int = 99;
pub const F_TRIM_ACTIVE_FILE: ::c_int = 100;
pub const F_SPECULATIVE_READ: ::c_int = 101;
pub const F_GETPATH_NOFIRMLINK: ::c_int = 102;
pub const F_ALLOCATECONTIG: ::c_uint = 0x02;
@@ -3313,6 +3796,8 @@ pub const MINCORE_MODIFIED: ::c_int = 0x4;
pub const MINCORE_REFERENCED_OTHER: ::c_int = 0x8;
pub const MINCORE_MODIFIED_OTHER: ::c_int = 0x10;
pub const CTLIOCGINFO: c_ulong = 0xc0644e03;
//
// sys/netinet/in.h
// Protocols (RFC 1700)
@@ -3568,6 +4053,9 @@ pub const AF_SYSTEM: ::c_int = 32;
pub const AF_NETBIOS: ::c_int = 33;
pub const AF_PPP: ::c_int = 34;
pub const pseudo_AF_HDRCMPLT: ::c_int = 35;
pub const AF_IEEE80211: ::c_int = 37;
pub const AF_UTUN: ::c_int = 38;
pub const AF_VSOCK: ::c_int = 40;
pub const AF_SYS_CONTROL: ::c_int = 2;
pub const SYSPROTO_EVENT: ::c_int = 1;
@@ -3609,6 +4097,7 @@ pub const PF_NATM: ::c_int = AF_NATM;
pub const PF_SYSTEM: ::c_int = AF_SYSTEM;
pub const PF_NETBIOS: ::c_int = AF_NETBIOS;
pub const PF_PPP: ::c_int = AF_PPP;
pub const PF_VSOCK: ::c_int = AF_VSOCK;
pub const NET_RT_DUMP: ::c_int = 1;
pub const NET_RT_FLAGS: ::c_int = 2;
@@ -3629,6 +4118,7 @@ pub const IP_RECVDSTADDR: ::c_int = 7;
pub const IP_ADD_MEMBERSHIP: ::c_int = 12;
pub const IP_DROP_MEMBERSHIP: ::c_int = 13;
pub const IP_RECVIF: ::c_int = 20;
pub const IP_RECVTTL: ::c_int = 24;
pub const IP_BOUND_IF: ::c_int = 25;
pub const IP_PKTINFO: ::c_int = 26;
pub const IP_RECVTOS: ::c_int = 27;
@@ -3638,6 +4128,7 @@ pub const IPV6_LEAVE_GROUP: ::c_int = 13;
pub const IPV6_CHECKSUM: ::c_int = 26;
pub const IPV6_RECVTCLASS: ::c_int = 35;
pub const IPV6_TCLASS: ::c_int = 36;
pub const IPV6_RECVHOPLIMIT: ::c_int = 37;
pub const IPV6_PKTINFO: ::c_int = 46;
pub const IPV6_HOPLIMIT: ::c_int = 47;
pub const IPV6_RECVPKTINFO: ::c_int = 61;
@@ -3655,6 +4146,7 @@ pub const TCP_KEEPINTVL: ::c_int = 0x101;
pub const TCP_KEEPCNT: ::c_int = 0x102;
/// Enable/Disable TCP Fastopen on this socket
pub const TCP_FASTOPEN: ::c_int = 0x105;
pub const TCP_CONNECTION_INFO: ::c_int = 0x106;
pub const SOL_LOCAL: ::c_int = 0;
@@ -3716,12 +4208,13 @@ pub const MSG_HOLD: ::c_int = 0x800;
pub const MSG_SEND: ::c_int = 0x1000;
pub const MSG_HAVEMORE: ::c_int = 0x2000;
pub const MSG_RCVMORE: ::c_int = 0x4000;
// pub const MSG_COMPAT: ::c_int = 0x8000;
pub const MSG_NEEDSA: ::c_int = 0x10000;
pub const MSG_NOSIGNAL: ::c_int = 0x80000;
pub const SCM_TIMESTAMP: ::c_int = 0x02;
pub const SCM_CREDS: ::c_int = 0x03;
// https://github.com/aosm/xnu/blob/master/bsd/net/if.h#L140-L156
// https://github.com/aosm/xnu/blob/HEAD/bsd/net/if.h#L140-L156
pub const IFF_UP: ::c_int = 0x1; // interface is up
pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid
pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging
@@ -4053,6 +4546,7 @@ pub const RTLD_FIRST: ::c_int = 0x100;
pub const RTLD_NODELETE: ::c_int = 0x80;
pub const RTLD_NOLOAD: ::c_int = 0x10;
pub const RTLD_GLOBAL: ::c_int = 0x8;
pub const RTLD_MAIN_ONLY: *mut ::c_void = -5isize as *mut ::c_void;
pub const _WSTOPPED: ::c_int = 0o177;
@@ -4518,7 +5012,7 @@ pub const DLT_ATM_RFC1483: ::c_uint = 11; // LLC/SNAP encapsulated atm
pub const DLT_RAW: ::c_uint = 12; // raw IP
pub const DLT_LOOP: ::c_uint = 108;
// https://github.com/apple/darwin-xnu/blob/master/bsd/net/bpf.h#L100
// https://github.com/apple/darwin-xnu/blob/HEAD/bsd/net/bpf.h#L100
// sizeof(i32)
pub const BPF_ALIGNMENT: ::c_int = 4;
@@ -4550,12 +5044,12 @@ pub const MNT_SNAPSHOT: ::c_int = 0x40000000;
pub const MNT_NOBLOCK: ::c_int = 0x00020000;
// sys/spawn.h:
pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x04;
pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x08;
pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x40;
pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x80;
pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x0001;
pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x0002;
pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x0004;
pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x0008;
pub const POSIX_SPAWN_SETEXEC: ::c_int = 0x0040;
pub const POSIX_SPAWN_START_SUSPENDED: ::c_int = 0x0080;
pub const POSIX_SPAWN_CLOEXEC_DEFAULT: ::c_int = 0x4000;
// sys/ipc.h:
@@ -4774,6 +5268,19 @@ pub const COPYFILE_PROGRESS: ::c_int = 4;
pub const COPYFILE_CONTINUE: ::c_int = 0;
pub const COPYFILE_SKIP: ::c_int = 1;
pub const COPYFILE_QUIT: ::c_int = 2;
pub const COPYFILE_STATE_SRC_FD: ::c_int = 1;
pub const COPYFILE_STATE_SRC_FILENAME: ::c_int = 2;
pub const COPYFILE_STATE_DST_FD: ::c_int = 3;
pub const COPYFILE_STATE_DST_FILENAME: ::c_int = 4;
pub const COPYFILE_STATE_QUARANTINE: ::c_int = 5;
pub const COPYFILE_STATE_STATUS_CB: ::c_int = 6;
pub const COPYFILE_STATE_STATUS_CTX: ::c_int = 7;
pub const COPYFILE_STATE_COPIED: ::c_int = 8;
pub const COPYFILE_STATE_XATTRNAME: ::c_int = 9;
pub const COPYFILE_STATE_WAS_CLONED: ::c_int = 10;
pub const COPYFILE_STATE_SRC_BSIZE: ::c_int = 11;
pub const COPYFILE_STATE_DST_BSIZE: ::c_int = 12;
pub const COPYFILE_STATE_BSIZE: ::c_int = 13;
// <sys/attr.h>
pub const ATTR_BIT_MAP_COUNT: ::c_ushort = 5;
@@ -4914,6 +5421,25 @@ pub const VOL_CAP_INT_RENAME_SWAP: attrgroup_t = 0x00040000;
pub const VOL_CAP_INT_RENAME_EXCL: attrgroup_t = 0x00080000;
pub const VOL_CAP_INT_RENAME_OPENFAIL: attrgroup_t = 0x00100000;
// <proc.h>
/// Process being created by fork.
pub const SIDL: u32 = 1;
/// Currently runnable.
pub const SRUN: u32 = 2;
/// Sleeping on an address.
pub const SSLEEP: u32 = 3;
/// Process debugging or suspension.
pub const SSTOP: u32 = 4;
/// Awaiting collection by parent.
pub const SZOMB: u32 = 5;
// sys/vsock.h
pub const VMADDR_CID_ANY: ::c_uint = 0xFFFFFFFF;
pub const VMADDR_CID_HYPERVISOR: ::c_uint = 0;
pub const VMADDR_CID_RESERVED: ::c_uint = 1;
pub const VMADDR_CID_HOST: ::c_uint = 2;
pub const VMADDR_PORT_ANY: ::c_uint = 0xFFFFFFFF;
cfg_if! {
if #[cfg(libc_const_extern_fn)] {
const fn __DARWIN_ALIGN32(p: usize) -> usize {
@@ -5019,7 +5545,7 @@ f! {
as ::c_uint
}
pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
(__DARWIN_ALIGN32(::mem::size_of::<::cmsghdr>()) + length as usize)
as ::c_uint
}
@@ -5119,13 +5645,24 @@ extern "C" {
pub fn endutxent();
pub fn utmpxname(file: *const ::c_char) -> ::c_int;
pub fn asctime(tm: *const ::tm) -> *mut ::c_char;
pub fn ctime(clock: *const time_t) -> *mut ::c_char;
pub fn getdate(datestr: *const ::c_char) -> *mut ::tm;
pub fn strptime(
buf: *const ::c_char,
format: *const ::c_char,
timeptr: *mut ::tm,
) -> *mut ::c_char;
pub fn asctime_r(tm: *const ::tm, result: *mut ::c_char) -> *mut ::c_char;
pub fn ctime_r(clock: *const time_t, result: *mut ::c_char) -> *mut ::c_char;
pub fn getnameinfo(
sa: *const ::sockaddr,
salen: ::socklen_t,
host: *mut ::c_char,
hostlen: ::socklen_t,
serv: *mut ::c_char,
sevlen: ::socklen_t,
servlen: ::socklen_t,
flags: ::c_int,
) -> ::c_int;
pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int;
@@ -5188,6 +5725,10 @@ extern "C" {
f: extern "C" fn(*mut ::c_void) -> *mut ::c_void,
value: *mut ::c_void,
) -> ::c_int;
pub fn pthread_stack_frame_decode_np(
frame_addr: ::uintptr_t,
return_addr: *mut ::uintptr_t,
) -> ::uintptr_t;
pub fn pthread_get_stackaddr_np(thread: ::pthread_t) -> *mut ::c_void;
pub fn pthread_get_stacksize_np(thread: ::pthread_t) -> ::size_t;
pub fn pthread_condattr_setpshared(attr: *mut pthread_condattr_t, pshared: ::c_int) -> ::c_int;
@@ -5195,6 +5736,7 @@ extern "C" {
attr: *const pthread_condattr_t,
pshared: *mut ::c_int,
) -> ::c_int;
pub fn pthread_main_np() -> ::c_int;
pub fn pthread_mutexattr_setpshared(
attr: *mut pthread_mutexattr_t,
pshared: ::c_int,
@@ -5556,6 +6098,26 @@ extern "C" {
subpref: *mut ::cpu_subtype_t,
ocount: *mut ::size_t,
) -> ::c_int;
pub fn posix_spawnattr_getbinpref_np(
attr: *const posix_spawnattr_t,
count: ::size_t,
pref: *mut ::cpu_type_t,
ocount: *mut ::size_t,
) -> ::c_int;
pub fn posix_spawnattr_setbinpref_np(
attr: *mut posix_spawnattr_t,
count: ::size_t,
pref: *mut ::cpu_type_t,
ocount: *mut ::size_t,
) -> ::c_int;
pub fn posix_spawnattr_set_qos_class_np(
attr: *mut posix_spawnattr_t,
qos_class: ::qos_class_t,
) -> ::c_int;
pub fn posix_spawnattr_get_qos_class_np(
attr: *const posix_spawnattr_t,
qos_class: *mut ::qos_class_t,
) -> ::c_int;
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
@@ -5633,6 +6195,10 @@ extern "C" {
state: copyfile_state_t,
flags: copyfile_flags_t,
) -> ::c_int;
pub fn copyfile_state_free(s: copyfile_state_t) -> ::c_int;
pub fn copyfile_state_alloc() -> copyfile_state_t;
pub fn copyfile_state_get(s: copyfile_state_t, flags: u32, dst: *mut ::c_void) -> ::c_int;
pub fn copyfile_state_set(s: copyfile_state_t, flags: u32, src: *const ::c_void) -> ::c_int;
// Added in macOS 10.13
// ISO/IEC 9899:2011 ("ISO C11") K.3.7.4.1
@@ -5717,7 +6283,7 @@ extern "C" {
buffersize: u32,
) -> ::c_int;
pub fn proc_kmsgbuf(buffer: *mut ::c_void, buffersize: u32) -> ::c_int;
pub fn proc_libversion(major: *mut ::c_int, mintor: *mut ::c_int) -> ::c_int;
pub fn proc_libversion(major: *mut ::c_int, minor: *mut ::c_int) -> ::c_int;
pub fn proc_pid_rusage(pid: ::c_int, flavor: ::c_int, buffer: *mut rusage_info_t) -> ::c_int;
// Available from Big Sur
@@ -5734,6 +6300,7 @@ extern "C" {
pub fn sethostid(hostid: ::c_long);
pub fn CCRandomGenerateBytes(bytes: *mut ::c_void, size: ::size_t) -> ::CCRNGStatus;
pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
pub fn _NSGetExecutablePath(buf: *mut ::c_char, bufsize: *mut u32) -> ::c_int;
pub fn _NSGetEnviron() -> *mut *mut *mut ::c_char;
@@ -5752,6 +6319,13 @@ extern "C" {
inheritance: ::vm_inherit_t,
) -> ::kern_return_t;
pub fn vm_allocate(
target_task: vm_map_t,
address: *mut vm_address_t,
size: vm_size_t,
flags: ::c_int,
) -> ::kern_return_t;
pub fn vm_deallocate(
target_task: vm_map_t,
address: vm_address_t,
@@ -5873,6 +6447,20 @@ extern "C" {
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
pub fn mkfifoat(dirfd: ::c_int, pathname: *const ::c_char, mode: ::mode_t) -> ::c_int;
pub fn mknodat(
dirfd: ::c_int,
pathname: *const ::c_char,
mode: ::mode_t,
dev: dev_t,
) -> ::c_int;
pub fn freadlink(fd: ::c_int, buf: *mut ::c_char, size: ::size_t) -> ::c_int;
pub fn execvP(
file: *const ::c_char,
search_path: *const ::c_char,
argv: *const *mut ::c_char,
) -> ::c_int;
}
pub unsafe fn mach_task_self() -> ::mach_port_t {
@@ -5887,7 +6475,7 @@ cfg_if! {
}
}
cfg_if! {
if #[cfg(any(target_os = "macos", target_os = "ios"))] {
if #[cfg(any(target_os = "macos", target_os = "ios", target_os = "tvos"))] {
extern "C" {
pub fn memmem(
haystack: *const ::c_void,
@@ -5931,3 +6519,10 @@ cfg_if! {
// Unknown target_arch
}
}
cfg_if! {
if #[cfg(libc_long_array)] {
mod long_array;
pub use self::long_array::*;
}
}
+20 -2
View File
@@ -1091,6 +1091,7 @@ pub const EV_NODATA: u16 = 0x1000;
pub const EV_FLAG1: u16 = 0x2000;
pub const EV_ERROR: u16 = 0x4000;
pub const EV_EOF: u16 = 0x8000;
pub const EV_HUP: u16 = 0x8000;
pub const EV_SYSFLAGS: u16 = 0xf000;
pub const FIODNAME: ::c_ulong = 0x80106678;
@@ -1132,7 +1133,7 @@ pub const PROC_REAP_STATUS: ::c_int = 0x0003;
pub const PROC_PDEATHSIG_CTL: ::c_int = 0x0004;
pub const PROC_PDEATHSIG_STATUS: ::c_int = 0x0005;
// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/net/if.h#L101
// https://github.com/DragonFlyBSD/DragonFlyBSD/blob/HEAD/sys/net/if.h#L101
pub const IFF_UP: ::c_int = 0x1; // interface is up
pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid
pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging
@@ -1518,6 +1519,9 @@ pub const MAXCOMLEN: usize = 16;
pub const MAXLOGNAME: usize = 33;
pub const NGROUPS: usize = 16;
pub const RB_PAUSE: ::c_int = 0x40000;
pub const RB_VIDEO: ::c_int = 0x20000000;
const_fn! {
{const} fn _CMSG_ALIGN(n: usize) -> usize {
(n + (::mem::size_of::<::c_long>() - 1)) & !(::mem::size_of::<::c_long>() - 1)
@@ -1530,7 +1534,7 @@ f! {
.offset(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) as isize)
}
pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
(_CMSG_ALIGN(::mem::size_of::<::cmsghdr>()) + length as usize)
as ::c_uint
}
@@ -1577,6 +1581,14 @@ f! {
let (idx, offset) = ((cpu >> 6) & 3, cpu & 63);
0 != cpuset.ary[idx] & (1 << offset)
}
pub fn major(dev: ::dev_t) -> ::c_int {
((dev >> 8) & 0xff) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(dev & 0xffff00ff) as ::c_int
}
}
safe_f! {
@@ -1666,6 +1678,12 @@ extern "C" {
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
pub fn getmntinfo(mntbufp: *mut *mut ::statfs, flags: ::c_int) -> ::c_int;
pub fn getmntvinfo(
mntbufp: *mut *mut ::statfs,
mntvbufp: *mut *mut ::statvfs,
flags: ::c_int,
) -> ::c_int;
}
#[link(name = "rt")]
@@ -442,6 +442,16 @@ safe_f! {
}
}
f! {
pub fn major(dev: ::dev_t) -> ::c_int {
((dev >> 8) & 0xff) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(dev & 0xffff00ff) as ::c_int
}
}
extern "C" {
// Return type ::c_int was removed in FreeBSD 12
pub fn setgrent() -> ::c_int;
@@ -462,8 +472,8 @@ extern "C" {
msgflg: ::c_int,
) -> ::c_int;
pub fn fdatasync(fd: ::c_int) -> ::c_int;
// Type of `path` argument changed from `const void*` to `void*`
// in FreeBSD 12
pub fn dirname(path: *const ::c_char) -> *mut ::c_char;
pub fn basename(path: *const ::c_char) -> *mut ::c_char;
}
@@ -462,6 +462,16 @@ safe_f! {
}
}
f! {
pub fn major(dev: ::dev_t) -> ::c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
}
}
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
@@ -473,20 +483,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
pub fn clock_nanosleep(
clk_id: ::clockid_t,
flags: ::c_int,
rqtp: *const ::timespec,
rmtp: *mut ::timespec,
) -> ::c_int;
pub fn fdatasync(fd: ::c_int) -> ::c_int;
pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
pub fn setproctitle_fast(fmt: *const ::c_char, ...);
pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
@@ -1,4 +1,4 @@
// APIs in FreeBSD 14 that have changed since 11.
// APIs in FreeBSD 13 that have changed since 11.
pub type nlink_t = u64;
pub type dev_t = u64;
@@ -481,6 +481,16 @@ safe_f! {
}
}
f! {
pub fn major(dev: ::dev_t) -> ::c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
}
}
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
@@ -492,23 +502,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
pub fn clock_nanosleep(
clk_id: ::clockid_t,
flags: ::c_int,
rqtp: *const ::timespec,
rmtp: *mut ::timespec,
) -> ::c_int;
pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
pub fn fdatasync(fd: ::c_int) -> ::c_int;
pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
pub fn setproctitle_fast(fmt: *const ::c_char, ...);
pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn cpuset_getdomain(
level: ::cpulevel_t,
@@ -1,4 +1,4 @@
// APIs in FreeBSD 13 that have changed since 11.
// APIs in FreeBSD 14 that have changed since 11.
pub type nlink_t = u64;
pub type dev_t = u64;
@@ -481,6 +481,16 @@ safe_f! {
}
}
f! {
pub fn major(dev: ::dev_t) -> ::c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
}
}
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
@@ -492,23 +502,6 @@ extern "C" {
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
pub fn clock_nanosleep(
clk_id: ::clockid_t,
flags: ::c_int,
rqtp: *const ::timespec,
rmtp: *mut ::timespec,
) -> ::c_int;
pub fn eventfd(init: ::c_uint, flags: ::c_int) -> ::c_int;
pub fn fdatasync(fd: ::c_int) -> ::c_int;
pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
pub fn elf_aux_info(aux: ::c_int, buf: *mut ::c_void, buflen: ::c_int) -> ::c_int;
pub fn setproctitle_fast(fmt: *const ::c_char, ...);
pub fn timingsafe_bcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn timingsafe_memcmp(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int;
pub fn cpuset_getdomain(
level: ::cpulevel_t,
@@ -3,3 +3,10 @@ pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2;
pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3;
pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1;
pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2;
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3;
pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000;
pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000;
@@ -0,0 +1,34 @@
#[repr(C)]
#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
pub struct stat {
pub st_dev: ::dev_t,
pub st_ino: ::ino_t,
pub st_nlink: ::nlink_t,
pub st_mode: ::mode_t,
st_padding0: i16,
pub st_uid: ::uid_t,
pub st_gid: ::gid_t,
st_padding1: i32,
pub st_rdev: ::dev_t,
pub st_atime: ::time_t,
pub st_atime_nsec: ::c_long,
pub st_mtime: ::time_t,
pub st_mtime_nsec: ::c_long,
pub st_ctime: ::time_t,
pub st_ctime_nsec: ::c_long,
pub st_birthtime: ::time_t,
pub st_birthtime_nsec: ::c_long,
pub st_size: ::off_t,
pub st_blocks: ::blkcnt_t,
pub st_blksize: ::blksize_t,
pub st_flags: ::fflags_t,
pub st_gen: u64,
pub st_spare: [u64; 10],
}
impl ::Copy for ::stat {}
impl ::Clone for ::stat {
fn clone(&self) -> ::stat {
*self
}
}
@@ -0,0 +1,546 @@
// APIs in FreeBSD 15 that have changed since 11.
pub type nlink_t = u64;
pub type dev_t = u64;
pub type ino_t = ::c_ulong;
pub type shmatt_t = ::c_uint;
pub type kpaddr_t = u64;
pub type kssize_t = i64;
pub type domainset_t = __c_anonymous_domainset;
s! {
pub struct shmid_ds {
pub shm_perm: ::ipc_perm,
pub shm_segsz: ::size_t,
pub shm_lpid: ::pid_t,
pub shm_cpid: ::pid_t,
pub shm_nattch: ::shmatt_t,
pub shm_atime: ::time_t,
pub shm_dtime: ::time_t,
pub shm_ctime: ::time_t,
}
pub struct kevent {
pub ident: ::uintptr_t,
pub filter: ::c_short,
pub flags: ::c_ushort,
pub fflags: ::c_uint,
pub data: i64,
pub udata: *mut ::c_void,
pub ext: [u64; 4],
}
pub struct kvm_page {
pub kp_version: ::u_int,
pub kp_paddr: ::kpaddr_t,
pub kp_kmap_vaddr: ::kvaddr_t,
pub kp_dmap_vaddr: ::kvaddr_t,
pub kp_prot: ::vm_prot_t,
pub kp_offset: ::off_t,
pub kp_len: ::size_t,
}
pub struct __c_anonymous_domainset {
_priv: [::uintptr_t; 4],
}
pub struct kinfo_proc {
/// Size of this structure.
pub ki_structsize: ::c_int,
/// Reserved: layout identifier.
pub ki_layout: ::c_int,
/// Address of command arguments.
pub ki_args: *mut ::pargs,
// This is normally "struct proc".
/// Address of proc.
pub ki_paddr: *mut ::c_void,
// This is normally "struct user".
/// Kernel virtual address of u-area.
pub ki_addr: *mut ::c_void,
// This is normally "struct vnode".
/// Pointer to trace file.
pub ki_tracep: *mut ::c_void,
// This is normally "struct vnode".
/// Pointer to executable file.
pub ki_textvp: *mut ::c_void,
// This is normally "struct filedesc".
/// Pointer to open file info.
pub ki_fd: *mut ::c_void,
// This is normally "struct vmspace".
/// Pointer to kernel vmspace struct.
pub ki_vmspace: *mut ::c_void,
/// Sleep address.
pub ki_wchan: *const ::c_void,
/// Process identifier.
pub ki_pid: ::pid_t,
/// Parent process ID.
pub ki_ppid: ::pid_t,
/// Process group ID.
pub ki_pgid: ::pid_t,
/// tty process group ID.
pub ki_tpgid: ::pid_t,
/// Process session ID.
pub ki_sid: ::pid_t,
/// Terminal session ID.
pub ki_tsid: ::pid_t,
/// Job control counter.
pub ki_jobc: ::c_short,
/// Unused (just here for alignment).
pub ki_spare_short1: ::c_short,
/// Controlling tty dev.
pub ki_tdev_freebsd11: u32,
/// Signals arrived but not delivered.
pub ki_siglist: ::sigset_t,
/// Current signal mask.
pub ki_sigmask: ::sigset_t,
/// Signals being ignored.
pub ki_sigignore: ::sigset_t,
/// Signals being caught by user.
pub ki_sigcatch: ::sigset_t,
/// Effective user ID.
pub ki_uid: ::uid_t,
/// Real user ID.
pub ki_ruid: ::uid_t,
/// Saved effective user ID.
pub ki_svuid: ::uid_t,
/// Real group ID.
pub ki_rgid: ::gid_t,
/// Saved effective group ID.
pub ki_svgid: ::gid_t,
/// Number of groups.
pub ki_ngroups: ::c_short,
/// Unused (just here for alignment).
pub ki_spare_short2: ::c_short,
/// Groups.
pub ki_groups: [::gid_t; ::KI_NGROUPS],
/// Virtual size.
pub ki_size: ::vm_size_t,
/// Current resident set size in pages.
pub ki_rssize: ::segsz_t,
/// Resident set size before last swap.
pub ki_swrss: ::segsz_t,
/// Text size (pages) XXX.
pub ki_tsize: ::segsz_t,
/// Data size (pages) XXX.
pub ki_dsize: ::segsz_t,
/// Stack size (pages).
pub ki_ssize: ::segsz_t,
/// Exit status for wait & stop signal.
pub ki_xstat: ::u_short,
/// Accounting flags.
pub ki_acflag: ::u_short,
/// %cpu for process during `ki_swtime`.
pub ki_pctcpu: ::fixpt_t,
/// Time averaged value of `ki_cpticks`.
pub ki_estcpu: ::u_int,
/// Time since last blocked.
pub ki_slptime: ::u_int,
/// Time swapped in or out.
pub ki_swtime: ::u_int,
/// Number of copy-on-write faults.
pub ki_cow: ::u_int,
/// Real time in microsec.
pub ki_runtime: u64,
/// Starting time.
pub ki_start: ::timeval,
/// Time used by process children.
pub ki_childtime: ::timeval,
/// P_* flags.
pub ki_flag: ::c_long,
/// KI_* flags (below).
pub ki_kiflag: ::c_long,
/// Kernel trace points.
pub ki_traceflag: ::c_int,
/// S* process status.
pub ki_stat: ::c_char,
/// Process "nice" value.
pub ki_nice: i8, // signed char
/// Process lock (prevent swap) count.
pub ki_lock: ::c_char,
/// Run queue index.
pub ki_rqindex: ::c_char,
/// Which cpu we are on.
pub ki_oncpu_old: ::c_uchar,
/// Last cpu we were on.
pub ki_lastcpu_old: ::c_uchar,
/// Thread name.
pub ki_tdname: [::c_char; ::TDNAMLEN + 1],
/// Wchan message.
pub ki_wmesg: [::c_char; ::WMESGLEN + 1],
/// Setlogin name.
pub ki_login: [::c_char; ::LOGNAMELEN + 1],
/// Lock name.
pub ki_lockname: [::c_char; ::LOCKNAMELEN + 1],
/// Command name.
pub ki_comm: [::c_char; ::COMMLEN + 1],
/// Emulation name.
pub ki_emul: [::c_char; ::KI_EMULNAMELEN + 1],
/// Login class.
pub ki_loginclass: [::c_char; ::LOGINCLASSLEN + 1],
/// More thread name.
pub ki_moretdname: [::c_char; ::MAXCOMLEN - ::TDNAMLEN + 1],
/// Spare string space.
pub ki_sparestrings: [[::c_char; 23]; 2], // little hack to allow PartialEq
/// Spare room for growth.
pub ki_spareints: [::c_int; ::KI_NSPARE_INT],
/// Controlling tty dev.
pub ki_tdev: u64,
/// Which cpu we are on.
pub ki_oncpu: ::c_int,
/// Last cpu we were on.
pub ki_lastcpu: ::c_int,
/// PID of tracing process.
pub ki_tracer: ::c_int,
/// P2_* flags.
pub ki_flag2: ::c_int,
/// Default FIB number.
pub ki_fibnum: ::c_int,
/// Credential flags.
pub ki_cr_flags: ::u_int,
/// Process jail ID.
pub ki_jid: ::c_int,
/// Number of threads in total.
pub ki_numthreads: ::c_int,
/// Thread ID.
pub ki_tid: ::lwpid_t,
/// Process priority.
pub ki_pri: ::priority,
/// Process rusage statistics.
pub ki_rusage: ::rusage,
/// rusage of children processes.
pub ki_rusage_ch: ::rusage,
// This is normally "struct pcb".
/// Kernel virtual addr of pcb.
pub ki_pcb: *mut ::c_void,
/// Kernel virtual addr of stack.
pub ki_kstack: *mut ::c_void,
/// User convenience pointer.
pub ki_udata: *mut ::c_void,
// This is normally "struct thread".
pub ki_tdaddr: *mut ::c_void,
// This is normally "struct pwddesc".
/// Pointer to process paths info.
pub ki_pd: *mut ::c_void,
pub ki_spareptrs: [*mut ::c_void; ::KI_NSPARE_PTR],
pub ki_sparelongs: [::c_long; ::KI_NSPARE_LONG],
/// PS_* flags.
pub ki_sflag: ::c_long,
/// kthread flag.
pub ki_tdflags: ::c_long,
}
}
s_no_extra_traits! {
pub struct dirent {
pub d_fileno: ::ino_t,
pub d_off: ::off_t,
pub d_reclen: u16,
pub d_type: u8,
d_pad0: u8,
pub d_namlen: u16,
d_pad1: u16,
pub d_name: [::c_char; 256],
}
pub struct statfs {
pub f_version: u32,
pub f_type: u32,
pub f_flags: u64,
pub f_bsize: u64,
pub f_iosize: u64,
pub f_blocks: u64,
pub f_bfree: u64,
pub f_bavail: i64,
pub f_files: u64,
pub f_ffree: i64,
pub f_syncwrites: u64,
pub f_asyncwrites: u64,
pub f_syncreads: u64,
pub f_asyncreads: u64,
f_spare: [u64; 10],
pub f_namemax: u32,
pub f_owner: ::uid_t,
pub f_fsid: ::fsid_t,
f_charspare: [::c_char; 80],
pub f_fstypename: [::c_char; 16],
pub f_mntfromname: [::c_char; 1024],
pub f_mntonname: [::c_char; 1024],
}
pub struct vnstat {
pub vn_fileid: u64,
pub vn_size: u64,
pub vn_dev: u64,
pub vn_fsid: u64,
pub vn_mntdir: *mut ::c_char,
pub vn_type: ::c_int,
pub vn_mode: u16,
pub vn_devname: [::c_char; ::SPECNAMELEN as usize + 1],
}
}
cfg_if! {
if #[cfg(feature = "extra_traits")] {
impl PartialEq for statfs {
fn eq(&self, other: &statfs) -> bool {
self.f_version == other.f_version
&& self.f_type == other.f_type
&& self.f_flags == other.f_flags
&& self.f_bsize == other.f_bsize
&& self.f_iosize == other.f_iosize
&& self.f_blocks == other.f_blocks
&& self.f_bfree == other.f_bfree
&& self.f_bavail == other.f_bavail
&& self.f_files == other.f_files
&& self.f_ffree == other.f_ffree
&& self.f_syncwrites == other.f_syncwrites
&& self.f_asyncwrites == other.f_asyncwrites
&& self.f_syncreads == other.f_syncreads
&& self.f_asyncreads == other.f_asyncreads
&& self.f_namemax == other.f_namemax
&& self.f_owner == other.f_owner
&& self.f_fsid == other.f_fsid
&& self.f_fstypename == other.f_fstypename
&& self
.f_mntfromname
.iter()
.zip(other.f_mntfromname.iter())
.all(|(a,b)| a == b)
&& self
.f_mntonname
.iter()
.zip(other.f_mntonname.iter())
.all(|(a,b)| a == b)
}
}
impl Eq for statfs {}
impl ::fmt::Debug for statfs {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("statfs")
.field("f_bsize", &self.f_bsize)
.field("f_iosize", &self.f_iosize)
.field("f_blocks", &self.f_blocks)
.field("f_bfree", &self.f_bfree)
.field("f_bavail", &self.f_bavail)
.field("f_files", &self.f_files)
.field("f_ffree", &self.f_ffree)
.field("f_syncwrites", &self.f_syncwrites)
.field("f_asyncwrites", &self.f_asyncwrites)
.field("f_syncreads", &self.f_syncreads)
.field("f_asyncreads", &self.f_asyncreads)
.field("f_namemax", &self.f_namemax)
.field("f_owner", &self.f_owner)
.field("f_fsid", &self.f_fsid)
.field("f_fstypename", &self.f_fstypename)
.field("f_mntfromname", &&self.f_mntfromname[..])
.field("f_mntonname", &&self.f_mntonname[..])
.finish()
}
}
impl ::hash::Hash for statfs {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.f_version.hash(state);
self.f_type.hash(state);
self.f_flags.hash(state);
self.f_bsize.hash(state);
self.f_iosize.hash(state);
self.f_blocks.hash(state);
self.f_bfree.hash(state);
self.f_bavail.hash(state);
self.f_files.hash(state);
self.f_ffree.hash(state);
self.f_syncwrites.hash(state);
self.f_asyncwrites.hash(state);
self.f_syncreads.hash(state);
self.f_asyncreads.hash(state);
self.f_namemax.hash(state);
self.f_owner.hash(state);
self.f_fsid.hash(state);
self.f_charspare.hash(state);
self.f_fstypename.hash(state);
self.f_mntfromname.hash(state);
self.f_mntonname.hash(state);
}
}
impl PartialEq for dirent {
fn eq(&self, other: &dirent) -> bool {
self.d_fileno == other.d_fileno
&& self.d_off == other.d_off
&& self.d_reclen == other.d_reclen
&& self.d_type == other.d_type
&& self.d_namlen == other.d_namlen
&& self
.d_name[..self.d_namlen as _]
.iter()
.zip(other.d_name.iter())
.all(|(a,b)| a == b)
}
}
impl Eq for dirent {}
impl ::fmt::Debug for dirent {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("dirent")
.field("d_fileno", &self.d_fileno)
.field("d_off", &self.d_off)
.field("d_reclen", &self.d_reclen)
.field("d_type", &self.d_type)
.field("d_namlen", &self.d_namlen)
.field("d_name", &&self.d_name[..self.d_namlen as _])
.finish()
}
}
impl ::hash::Hash for dirent {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.d_fileno.hash(state);
self.d_off.hash(state);
self.d_reclen.hash(state);
self.d_type.hash(state);
self.d_namlen.hash(state);
self.d_name[..self.d_namlen as _].hash(state);
}
}
impl PartialEq for vnstat {
fn eq(&self, other: &vnstat) -> bool {
let self_vn_devname: &[::c_char] = &self.vn_devname;
let other_vn_devname: &[::c_char] = &other.vn_devname;
self.vn_fileid == other.vn_fileid &&
self.vn_size == other.vn_size &&
self.vn_dev == other.vn_dev &&
self.vn_fsid == other.vn_fsid &&
self.vn_mntdir == other.vn_mntdir &&
self.vn_type == other.vn_type &&
self.vn_mode == other.vn_mode &&
self_vn_devname == other_vn_devname
}
}
impl Eq for vnstat {}
impl ::fmt::Debug for vnstat {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
let self_vn_devname: &[::c_char] = &self.vn_devname;
f.debug_struct("vnstat")
.field("vn_fileid", &self.vn_fileid)
.field("vn_size", &self.vn_size)
.field("vn_dev", &self.vn_dev)
.field("vn_fsid", &self.vn_fsid)
.field("vn_mntdir", &self.vn_mntdir)
.field("vn_type", &self.vn_type)
.field("vn_mode", &self.vn_mode)
.field("vn_devname", &self_vn_devname)
.finish()
}
}
impl ::hash::Hash for vnstat {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
let self_vn_devname: &[::c_char] = &self.vn_devname;
self.vn_fileid.hash(state);
self.vn_size.hash(state);
self.vn_dev.hash(state);
self.vn_fsid.hash(state);
self.vn_mntdir.hash(state);
self.vn_type.hash(state);
self.vn_mode.hash(state);
self_vn_devname.hash(state);
}
}
}
}
pub const RAND_MAX: ::c_int = 0x7fff_ffff;
pub const ELAST: ::c_int = 97;
pub const KF_TYPE_EVENTFD: ::c_int = 13;
/// max length of devicename
pub const SPECNAMELEN: ::c_int = 255;
pub const KI_NSPARE_PTR: usize = 5;
/// domainset policies
pub const DOMAINSET_POLICY_INVALID: ::c_int = 0;
pub const DOMAINSET_POLICY_ROUNDROBIN: ::c_int = 1;
pub const DOMAINSET_POLICY_FIRSTTOUCH: ::c_int = 2;
pub const DOMAINSET_POLICY_PREFER: ::c_int = 3;
pub const DOMAINSET_POLICY_INTERLEAVE: ::c_int = 4;
pub const MINCORE_SUPER: ::c_int = 0x60;
safe_f! {
pub {const} fn makedev(major: ::c_uint, minor: ::c_uint) -> ::dev_t {
let major = major as ::dev_t;
let minor = minor as ::dev_t;
let mut dev = 0;
dev |= ((major & 0xffffff00) as dev_t) << 32;
dev |= ((major & 0x000000ff) as dev_t) << 8;
dev |= ((minor & 0x0000ff00) as dev_t) << 24;
dev |= ((minor & 0xffff00ff) as dev_t) << 0;
dev
}
}
f! {
pub fn major(dev: ::dev_t) -> ::c_int {
(((dev >> 32) & 0xffffff00) | ((dev >> 8) & 0xff)) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
(((dev >> 24) & 0xff00) | (dev & 0xffff00ff)) as ::c_int
}
}
extern "C" {
pub fn setgrent();
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
pub fn freelocale(loc: ::locale_t);
pub fn msgrcv(
msqid: ::c_int,
msgp: *mut ::c_void,
msgsz: ::size_t,
msgtyp: ::c_long,
msgflg: ::c_int,
) -> ::ssize_t;
pub fn cpuset_getdomain(
level: ::cpulevel_t,
which: ::cpuwhich_t,
id: ::id_t,
setsize: ::size_t,
mask: *mut ::domainset_t,
policy: *mut ::c_int,
) -> ::c_int;
pub fn cpuset_setdomain(
level: ::cpulevel_t,
which: ::cpuwhich_t,
id: ::id_t,
setsize: ::size_t,
mask: *const ::domainset_t,
policy: ::c_int,
) -> ::c_int;
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
}
#[link(name = "kvm")]
extern "C" {
pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
}
cfg_if! {
if #[cfg(any(target_arch = "x86_64",
target_arch = "aarch64",
target_arch = "riscv64"))] {
mod b64;
pub use self::b64::*;
}
}
cfg_if! {
if #[cfg(target_arch = "x86_64")] {
mod x86_64;
pub use self::x86_64::*;
}
}
@@ -0,0 +1,12 @@
pub const PROC_KPTI_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN;
pub const PROC_KPTI_CTL_ENABLE_ON_EXEC: ::c_int = 1;
pub const PROC_KPTI_CTL_DISABLE_ON_EXEC: ::c_int = 2;
pub const PROC_KPTI_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 1;
pub const PROC_KPTI_STATUS_ACTIVE: ::c_int = 0x80000000;
pub const PROC_LA_CTL: ::c_int = ::PROC_PROCCTL_MD_MIN + 2;
pub const PROC_LA_STATUS: ::c_int = ::PROC_PROCCTL_MD_MIN + 3;
pub const PROC_LA_CTL_LA48_ON_EXEC: ::c_int = 1;
pub const PROC_LA_CTL_LA57_ON_EXEC: ::c_int = 2;
pub const PROC_LA_CTL_DEFAULT_ON_EXEC: ::c_int = 3;
pub const PROC_LA_STATUS_LA48: ::c_int = 0x01000000;
pub const PROC_LA_STATUS_LA57: ::c_int = 0x02000000;
File diff suppressed because it is too large Load Diff
+155
View File
@@ -6,6 +6,41 @@ pub type time_t = i32;
pub type suseconds_t = i32;
pub type register_t = i32;
s_no_extra_traits! {
pub struct mcontext_t {
pub mc_onstack: register_t,
pub mc_gs: register_t,
pub mc_fs: register_t,
pub mc_es: register_t,
pub mc_ds: register_t,
pub mc_edi: register_t,
pub mc_esi: register_t,
pub mc_ebp: register_t,
pub mc_isp: register_t,
pub mc_ebx: register_t,
pub mc_edx: register_t,
pub mc_ecx: register_t,
pub mc_eax: register_t,
pub mc_trapno: register_t,
pub mc_err: register_t,
pub mc_eip: register_t,
pub mc_cs: register_t,
pub mc_eflags: register_t,
pub mc_esp: register_t,
pub mc_ss: register_t,
pub mc_len: ::c_int,
pub mc_fpformat: ::c_int,
pub mc_ownedfp: ::c_int,
pub mc_flags: register_t,
pub mc_fpstate: [[::c_int; 32]; 4],
pub mc_fsbase: register_t,
pub mc_gsbase: register_t,
pub mc_xfpustate: register_t,
pub mc_xfpustate_len: register_t,
pub mc_spare2: [::c_int; 4],
}
}
s! {
pub struct stat {
pub st_dev: ::dev_t,
@@ -31,6 +66,15 @@ s! {
pub st_birthtime_nsec: ::c_long,
__unused: [u8; 8],
}
pub struct ucontext_t {
pub uc_sigmask: ::sigset_t,
pub uc_mcontext: ::mcontext_t,
pub uc_link: *mut ::ucontext_t,
pub uc_stack: ::stack_t,
pub uc_flags: ::c_int,
__spare__: [::c_int; 4],
}
}
// should be pub(crate), but that requires Rust 1.18.0
@@ -43,4 +87,115 @@ cfg_if! {
pub const _ALIGNBYTES: usize = 4 - 1;
}
}
cfg_if! {
if #[cfg(feature = "extra_traits")] {
impl PartialEq for mcontext_t {
fn eq(&self, other: &mcontext_t) -> bool {
self.mc_onstack == other.mc_onstack &&
self.mc_gs == other.mc_gs &&
self.mc_fs == other.mc_fs &&
self.mc_es == other.mc_es &&
self.mc_ds == other.mc_ds &&
self.mc_edi == other.mc_edi &&
self.mc_esi == other.mc_esi &&
self.mc_ebp == other.mc_ebp &&
self.mc_isp == other.mc_isp &&
self.mc_ebx == other.mc_ebx &&
self.mc_edx == other.mc_edx &&
self.mc_ecx == other.mc_ecx &&
self.mc_eax == other.mc_eax &&
self.mc_trapno == other.mc_trapno &&
self.mc_err == other.mc_err &&
self.mc_eip == other.mc_eip &&
self.mc_cs == other.mc_cs &&
self.mc_eflags == other.mc_eflags &&
self.mc_esp == other.mc_esp &&
self.mc_ss == other.mc_ss &&
self.mc_len == other.mc_len &&
self.mc_fpformat == other.mc_fpformat &&
self.mc_ownedfp == other.mc_ownedfp &&
self.mc_flags == other.mc_flags &&
self.mc_fpstate.iter().zip(other.mc_fpstate.iter()).all(|(a, b)| a == b) &&
self.mc_fsbase == other.mc_fsbase &&
self.mc_gsbase == other.mc_gsbase &&
self.mc_xfpustate == other.mc_xfpustate &&
self.mc_xfpustate_len == other.mc_xfpustate_len &&
self.mc_spare2.iter().zip(other.mc_spare2.iter()).all(|(a, b)| a == b)
}
}
impl Eq for mcontext_t {}
impl ::fmt::Debug for mcontext_t {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("mcontext_t")
.field("mc_onstack", &self.mc_onstack)
.field("mc_gs", &self.mc_gs)
.field("mc_fs", &self.mc_fs)
.field("mc_es", &self.mc_es)
.field("mc_ds", &self.mc_ds)
.field("mc_edi", &self.mc_edi)
.field("mc_esi", &self.mc_esi)
.field("mc_ebp", &self.mc_ebp)
.field("mc_isp", &self.mc_isp)
.field("mc_ebx", &self.mc_ebx)
.field("mc_edx", &self.mc_edx)
.field("mc_ecx", &self.mc_ecx)
.field("mc_eax", &self.mc_eax)
.field("mc_trapno", &self.mc_trapno)
.field("mc_err", &self.mc_err)
.field("mc_eip", &self.mc_eip)
.field("mc_cs", &self.mc_cs)
.field("mc_eflags", &self.mc_eflags)
.field("mc_esp", &self.mc_esp)
.field("mc_ss", &self.mc_ss)
.field("mc_len", &self.mc_len)
.field("mc_fpformat", &self.mc_fpformat)
.field("mc_ownedfp", &self.mc_ownedfp)
.field("mc_flags", &self.mc_flags)
.field("mc_fpstate", &self.mc_fpstate)
.field("mc_fsbase", &self.mc_fsbase)
.field("mc_gsbase", &self.mc_gsbase)
.field("mc_xfpustate", &self.mc_xfpustate)
.field("mc_xfpustate_len", &self.mc_xfpustate_len)
.field("mc_spare2", &self.mc_spare2)
.finish()
}
}
impl ::hash::Hash for mcontext_t {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
self.mc_onstack.hash(state);
self.mc_gs.hash(state);
self.mc_fs.hash(state);
self.mc_es.hash(state);
self.mc_ds.hash(state);
self.mc_edi.hash(state);
self.mc_esi.hash(state);
self.mc_ebp.hash(state);
self.mc_isp.hash(state);
self.mc_ebx.hash(state);
self.mc_edx.hash(state);
self.mc_ecx.hash(state);
self.mc_eax.hash(state);
self.mc_trapno.hash(state);
self.mc_err.hash(state);
self.mc_eip.hash(state);
self.mc_cs.hash(state);
self.mc_eflags.hash(state);
self.mc_esp.hash(state);
self.mc_ss.hash(state);
self.mc_len.hash(state);
self.mc_fpformat.hash(state);
self.mc_ownedfp.hash(state);
self.mc_flags.hash(state);
self.mc_fpstate.hash(state);
self.mc_fsbase.hash(state);
self.mc_gsbase.hash(state);
self.mc_xfpustate.hash(state);
self.mc_xfpustate_len.hash(state);
self.mc_spare2.hash(state);
}
}
}
}
pub const MINSIGSTKSZ: ::size_t = 2048; // 512 * 4
+60 -1
View File
@@ -1336,7 +1336,7 @@ pub const CMGROUP_MAX: usize = 16;
pub const EUI64_LEN: usize = 8;
// https://github.com/freebsd/freebsd/blob/master/sys/net/bpf.h
// https://github.com/freebsd/freebsd/blob/HEAD/sys/net/bpf.h
pub const BPF_ALIGNMENT: usize = SIZEOF_LONG;
// Values for rtprio struct (prio field) and syscall (function argument)
@@ -1431,6 +1431,31 @@ pub const SHM_RND: ::c_int = 0o20000;
pub const SHM_R: ::c_int = 0o400;
pub const SHM_W: ::c_int = 0o200;
pub const KENV_GET: ::c_int = 0;
pub const KENV_SET: ::c_int = 1;
pub const KENV_UNSET: ::c_int = 2;
pub const KENV_DUMP: ::c_int = 3;
pub const KENV_MNAMELEN: ::c_int = 128;
pub const KENV_MVALLEN: ::c_int = 128;
pub const RB_ASKNAME: ::c_int = 0x001;
pub const RB_SINGLE: ::c_int = 0x002;
pub const RB_NOSYNC: ::c_int = 0x004;
pub const RB_HALT: ::c_int = 0x008;
pub const RB_INITNAME: ::c_int = 0x010;
pub const RB_DFLTROOT: ::c_int = 0x020;
pub const RB_KDB: ::c_int = 0x040;
pub const RB_RDONLY: ::c_int = 0x080;
pub const RB_DUMP: ::c_int = 0x100;
pub const RB_MINIROOT: ::c_int = 0x200;
pub const RB_VERBOSE: ::c_int = 0x800;
pub const RB_SERIAL: ::c_int = 0x1000;
pub const RB_CDROM: ::c_int = 0x2000;
pub const RB_POWEROFF: ::c_int = 0x4000;
pub const RB_GDB: ::c_int = 0x8000;
pub const RB_MUTE: ::c_int = 0x10000;
pub const RB_SELFTEST: ::c_int = 0x20000;
safe_f! {
pub {const} fn WIFCONTINUED(status: ::c_int) -> bool {
status == 0x13
@@ -1465,6 +1490,13 @@ extern "C" {
atflag: ::c_int,
) -> ::c_int;
pub fn clock_nanosleep(
clk_id: ::clockid_t,
flags: ::c_int,
rqtp: *const ::timespec,
rmtp: *mut ::timespec,
) -> ::c_int;
pub fn clock_getres(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
pub fn clock_gettime(clk_id: ::clockid_t, tp: *mut ::timespec) -> ::c_int;
pub fn clock_settime(clk_id: ::clockid_t, tp: *const ::timespec) -> ::c_int;
@@ -1543,6 +1575,7 @@ extern "C" {
mode: ::mode_t,
dev: dev_t,
) -> ::c_int;
pub fn malloc_usable_size(ptr: *const ::c_void) -> ::size_t;
pub fn mincore(addr: *const ::c_void, len: ::size_t, vec: *mut ::c_char) -> ::c_int;
pub fn newlocale(mask: ::c_int, locale: *const ::c_char, base: ::locale_t) -> ::locale_t;
pub fn nl_langinfo_l(item: ::nl_item, locale: ::locale_t) -> *mut ::c_char;
@@ -1561,6 +1594,7 @@ extern "C" {
attr: *const ::pthread_attr_t,
guardsize: *mut ::size_t,
) -> ::c_int;
pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int;
pub fn pthread_attr_getstack(
attr: *const ::pthread_attr_t,
stackaddr: *mut *mut ::c_void,
@@ -1616,6 +1650,12 @@ extern "C" {
pub fn pthread_barrier_wait(barrier: *mut pthread_barrier_t) -> ::c_int;
pub fn pthread_get_name_np(tid: ::pthread_t, name: *mut ::c_char, len: ::size_t);
pub fn pthread_set_name_np(tid: ::pthread_t, name: *const ::c_char);
pub fn pthread_getname_np(
thread: ::pthread_t,
buffer: *mut ::c_char,
length: ::size_t,
) -> ::c_int;
pub fn pthread_setname_np(thread: ::pthread_t, name: *const ::c_char) -> ::c_int;
pub fn pthread_setschedparam(
native: ::pthread_t,
policy: ::c_int,
@@ -1734,6 +1774,25 @@ extern "C" {
pub fn eui64_hostton(hostname: *const ::c_char, id: *mut eui64) -> ::c_int;
pub fn eaccess(path: *const ::c_char, mode: ::c_int) -> ::c_int;
pub fn kenv(
action: ::c_int,
name: *const ::c_char,
value: *mut ::c_char,
len: ::c_int,
) -> ::c_int;
pub fn reboot(howto: ::c_int) -> ::c_int;
pub fn exect(
path: *const ::c_char,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn execvP(
file: *const ::c_char,
search_path: *const ::c_char,
argv: *const *mut ::c_char,
) -> ::c_int;
}
#[link(name = "rt")]
+16
View File
@@ -628,6 +628,7 @@ extern "C" {
pub fn getifaddrs(ifap: *mut *mut ::ifaddrs) -> ::c_int;
pub fn freeifaddrs(ifa: *mut ::ifaddrs);
pub fn setgroups(ngroups: ::c_int, ptr: *const ::gid_t) -> ::c_int;
pub fn setlogin(name: *const ::c_char) -> ::c_int;
pub fn ioctl(fd: ::c_int, request: ::c_ulong, ...) -> ::c_int;
pub fn kqueue() -> ::c_int;
pub fn unmount(target: *const ::c_char, arg: ::c_int) -> ::c_int;
@@ -760,6 +761,7 @@ extern "C" {
)]
#[cfg_attr(target_os = "netbsd", link_name = "__sigaltstack14")]
pub fn sigaltstack(ss: *const stack_t, oss: *mut stack_t) -> ::c_int;
pub fn sigsuspend(mask: *const ::sigset_t) -> ::c_int;
pub fn sem_close(sem: *mut sem_t) -> ::c_int;
pub fn getdtablesize() -> ::c_int;
pub fn getgrnam_r(
@@ -898,6 +900,20 @@ extern "C" {
longopts: *const option,
longindex: *mut ::c_int,
) -> ::c_int;
pub fn strftime(
buf: *mut ::c_char,
maxsize: ::size_t,
format: *const ::c_char,
timeptr: *const ::tm,
) -> ::size_t;
pub fn strftime_l(
buf: *mut ::c_char,
maxsize: ::size_t,
format: *const ::c_char,
timeptr: *const ::tm,
locale: ::locale_t,
) -> ::size_t;
}
cfg_if! {
+102
View File
@@ -364,6 +364,13 @@ pub const POSIX_MADV_SEQUENTIAL: ::c_int = 2;
pub const POSIX_MADV_WILLNEED: ::c_int = 3;
pub const POSIX_MADV_DONTNEED: ::c_int = 4;
pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04;
pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08;
pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10;
pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20;
pub const PTHREAD_CREATE_JOINABLE: ::c_int = 0;
pub const PTHREAD_CREATE_DETACHED: ::c_int = 1;
@@ -646,6 +653,12 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG;
pub const TIMER_ABSTIME: ::c_int = 1;
// sys/reboot.h
pub const RB_AUTOBOOT: ::c_int = 0;
pub const TCP_INFO: ::c_int = 9;
#[link(name = "util")]
extern "C" {
pub fn setgrent();
@@ -736,6 +749,94 @@ extern "C" {
pub fn shmat(shmid: ::c_int, shmaddr: *const ::c_void, shmflg: ::c_int) -> *mut ::c_void;
pub fn shmdt(shmaddr: *const ::c_void) -> ::c_int;
pub fn shmctl(shmid: ::c_int, cmd: ::c_int, buf: *mut ::shmid_ds) -> ::c_int;
pub fn execvpe(
file: *const ::c_char,
argv: *const *const ::c_char,
envp: *const *const ::c_char,
) -> ::c_int;
pub fn waitid(
idtype: idtype_t,
id: ::id_t,
infop: *mut ::siginfo_t,
options: ::c_int,
) -> ::c_int;
pub fn posix_spawn(
pid: *mut ::pid_t,
path: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawnp(
pid: *mut ::pid_t,
file: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_getsigdefault(
attr: *const posix_spawnattr_t,
default: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigdefault(
attr: *mut posix_spawnattr_t,
default: *const ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_getsigmask(
attr: *const posix_spawnattr_t,
default: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigmask(
attr: *mut posix_spawnattr_t,
default: *const ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_getflags(
attr: *const posix_spawnattr_t,
flags: *mut ::c_short,
) -> ::c_int;
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int;
pub fn posix_spawnattr_getpgroup(
attr: *const posix_spawnattr_t,
flags: *mut ::pid_t,
) -> ::c_int;
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int;
pub fn posix_spawnattr_getschedpolicy(
attr: *const posix_spawnattr_t,
flags: *mut ::c_int,
) -> ::c_int;
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int;
pub fn posix_spawnattr_getschedparam(
attr: *const posix_spawnattr_t,
param: *mut ::sched_param,
) -> ::c_int;
pub fn posix_spawnattr_setschedparam(
attr: *mut posix_spawnattr_t,
param: *const ::sched_param,
) -> ::c_int;
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_addopen(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
path: *const ::c_char,
oflag: ::c_int,
mode: ::mode_t,
) -> ::c_int;
pub fn posix_spawn_file_actions_addclose(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
) -> ::c_int;
pub fn posix_spawn_file_actions_adddup2(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
newfd: ::c_int,
) -> ::c_int;
}
extern "C" {
@@ -746,6 +847,7 @@ extern "C" {
pub fn dirname(path: *mut ::c_char) -> *mut ::c_char;
pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
}
cfg_if! {
+59
View File
@@ -101,3 +101,62 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3;
pub const _REG_R0: ::c_int = 0;
pub const _REG_R1: ::c_int = 1;
pub const _REG_R2: ::c_int = 2;
pub const _REG_R3: ::c_int = 3;
pub const _REG_R4: ::c_int = 4;
pub const _REG_R5: ::c_int = 5;
pub const _REG_R6: ::c_int = 6;
pub const _REG_R7: ::c_int = 7;
pub const _REG_R8: ::c_int = 8;
pub const _REG_R9: ::c_int = 9;
pub const _REG_R10: ::c_int = 10;
pub const _REG_R11: ::c_int = 11;
pub const _REG_R12: ::c_int = 12;
pub const _REG_R13: ::c_int = 13;
pub const _REG_R14: ::c_int = 14;
pub const _REG_R15: ::c_int = 15;
pub const _REG_CPSR: ::c_int = 16;
pub const _REG_X0: ::c_int = 0;
pub const _REG_X1: ::c_int = 1;
pub const _REG_X2: ::c_int = 2;
pub const _REG_X3: ::c_int = 3;
pub const _REG_X4: ::c_int = 4;
pub const _REG_X5: ::c_int = 5;
pub const _REG_X6: ::c_int = 6;
pub const _REG_X7: ::c_int = 7;
pub const _REG_X8: ::c_int = 8;
pub const _REG_X9: ::c_int = 9;
pub const _REG_X10: ::c_int = 10;
pub const _REG_X11: ::c_int = 11;
pub const _REG_X12: ::c_int = 12;
pub const _REG_X13: ::c_int = 13;
pub const _REG_X14: ::c_int = 14;
pub const _REG_X15: ::c_int = 15;
pub const _REG_X16: ::c_int = 16;
pub const _REG_X17: ::c_int = 17;
pub const _REG_X18: ::c_int = 18;
pub const _REG_X19: ::c_int = 19;
pub const _REG_X20: ::c_int = 20;
pub const _REG_X21: ::c_int = 21;
pub const _REG_X22: ::c_int = 22;
pub const _REG_X23: ::c_int = 23;
pub const _REG_X24: ::c_int = 24;
pub const _REG_X25: ::c_int = 25;
pub const _REG_X26: ::c_int = 26;
pub const _REG_X27: ::c_int = 27;
pub const _REG_X28: ::c_int = 28;
pub const _REG_X29: ::c_int = 29;
pub const _REG_X30: ::c_int = 30;
pub const _REG_X31: ::c_int = 31;
pub const _REG_ELR: ::c_int = 32;
pub const _REG_SPSR: ::c_int = 33;
pub const _REG_TIPDR: ::c_int = 34;
pub const _REG_RV: ::c_int = _REG_X0;
pub const _REG_FP: ::c_int = _REG_X29;
pub const _REG_LR: ::c_int = _REG_X30;
pub const _REG_SP: ::c_int = _REG_X31;
pub const _REG_PC: ::c_int = _REG_ELR;
+59
View File
@@ -20,3 +20,62 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4;
pub const _REG_R0: ::c_int = 0;
pub const _REG_R1: ::c_int = 1;
pub const _REG_R2: ::c_int = 2;
pub const _REG_R3: ::c_int = 3;
pub const _REG_R4: ::c_int = 4;
pub const _REG_R5: ::c_int = 5;
pub const _REG_R6: ::c_int = 6;
pub const _REG_R7: ::c_int = 7;
pub const _REG_R8: ::c_int = 8;
pub const _REG_R9: ::c_int = 9;
pub const _REG_R10: ::c_int = 10;
pub const _REG_R11: ::c_int = 11;
pub const _REG_R12: ::c_int = 12;
pub const _REG_R13: ::c_int = 13;
pub const _REG_R14: ::c_int = 14;
pub const _REG_R15: ::c_int = 15;
pub const _REG_CPSR: ::c_int = 16;
pub const _REG_X0: ::c_int = 0;
pub const _REG_X1: ::c_int = 1;
pub const _REG_X2: ::c_int = 2;
pub const _REG_X3: ::c_int = 3;
pub const _REG_X4: ::c_int = 4;
pub const _REG_X5: ::c_int = 5;
pub const _REG_X6: ::c_int = 6;
pub const _REG_X7: ::c_int = 7;
pub const _REG_X8: ::c_int = 8;
pub const _REG_X9: ::c_int = 9;
pub const _REG_X10: ::c_int = 10;
pub const _REG_X11: ::c_int = 11;
pub const _REG_X12: ::c_int = 12;
pub const _REG_X13: ::c_int = 13;
pub const _REG_X14: ::c_int = 14;
pub const _REG_X15: ::c_int = 15;
pub const _REG_X16: ::c_int = 16;
pub const _REG_X17: ::c_int = 17;
pub const _REG_X18: ::c_int = 18;
pub const _REG_X19: ::c_int = 19;
pub const _REG_X20: ::c_int = 20;
pub const _REG_X21: ::c_int = 21;
pub const _REG_X22: ::c_int = 22;
pub const _REG_X23: ::c_int = 23;
pub const _REG_X24: ::c_int = 24;
pub const _REG_X25: ::c_int = 25;
pub const _REG_X26: ::c_int = 26;
pub const _REG_X27: ::c_int = 27;
pub const _REG_X28: ::c_int = 28;
pub const _REG_X29: ::c_int = 29;
pub const _REG_X30: ::c_int = 30;
pub const _REG_X31: ::c_int = 31;
pub const _REG_ELR: ::c_int = 32;
pub const _REG_SPSR: ::c_int = 33;
pub const _REG_TIPDR: ::c_int = 34;
pub const _REG_RV: ::c_int = _REG_R0;
pub const _REG_FP: ::c_int = _REG_R11;
pub const _REG_LR: ::c_int = _REG_R13;
pub const _REG_SP: ::c_int = _REG_R14;
pub const _REG_PC: ::c_int = _REG_R15;
+21
View File
@@ -0,0 +1,21 @@
use PT_FIRSTMACH;
pub type c_long = i32;
pub type c_ulong = u32;
pub type c_char = i8;
pub type __cpu_simple_lock_nv_t = ::c_int;
cfg_if! {
if #[cfg(libc_const_size_of)] {
#[doc(hidden)]
pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1;
} else {
#[doc(hidden)]
pub const _ALIGNBYTES: usize = 8 - 1;
}
}
pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4;
+223 -149
View File
@@ -10,7 +10,7 @@ type __pthread_spin_t = __cpu_simple_lock_nv_t;
pub type vm_size_t = ::uintptr_t; // FIXME: deprecated since long time
pub type lwpid_t = ::c_uint;
pub type shmatt_t = ::c_uint;
pub type cpuid_t = u64;
pub type cpuid_t = ::c_ulong;
pub type cpuset_t = _cpuset;
pub type pthread_spin_t = ::c_uchar;
pub type timer_t = ::c_int;
@@ -60,6 +60,39 @@ impl siginfo_t {
self.si_addr
}
pub unsafe fn si_code(&self) -> ::c_int {
self.si_code
}
pub unsafe fn si_errno(&self) -> ::c_int {
self.si_errno
}
pub unsafe fn si_pid(&self) -> ::pid_t {
#[repr(C)]
struct siginfo_timer {
_si_signo: ::c_int,
_si_errno: ::c_int,
_si_code: ::c_int,
__pad1: ::c_int,
_pid: ::pid_t,
}
(*(self as *const siginfo_t as *const siginfo_timer))._pid
}
pub unsafe fn si_uid(&self) -> ::uid_t {
#[repr(C)]
struct siginfo_timer {
_si_signo: ::c_int,
_si_errno: ::c_int,
_si_code: ::c_int,
__pad1: ::c_int,
_pid: ::pid_t,
_uid: ::uid_t,
}
(*(self as *const siginfo_t as *const siginfo_timer))._uid
}
pub unsafe fn si_value(&self) -> ::sigval {
#[repr(C)]
struct siginfo_timer {
@@ -709,6 +742,49 @@ s! {
#[cfg(libc_union)]
pub ifc_ifcu: __c_anonymous_ifc_ifcu,
}
pub struct tcp_info {
pub tcpi_state: u8,
pub __tcpi_ca_state: u8,
pub __tcpi_retransmits: u8,
pub __tcpi_probes: u8,
pub __tcpi_backoff: u8,
pub tcpi_options: u8,
pub tcp_snd_wscale: u8,
pub tcp_rcv_wscale: u8,
pub tcpi_rto: u32,
pub __tcpi_ato: u32,
pub tcpi_snd_mss: u32,
pub tcpi_rcv_mss: u32,
pub __tcpi_unacked: u32,
pub __tcpi_sacked: u32,
pub __tcpi_lost: u32,
pub __tcpi_retrans: u32,
pub __tcpi_fackets: u32,
pub __tcpi_last_data_sent: u32,
pub __tcpi_last_ack_sent: u32,
pub tcpi_last_data_recv: u32,
pub __tcpi_last_ack_recv: u32,
pub __tcpi_pmtu: u32,
pub __tcpi_rcv_ssthresh: u32,
pub tcpi_rtt: u32,
pub tcpi_rttvar: u32,
pub tcpi_snd_ssthresh: u32,
pub tcpi_snd_cwnd: u32,
pub __tcpi_advmss: u32,
pub __tcpi_reordering: u32,
pub __tcpi_rcv_rtt: u32,
pub tcpi_rcv_space: u32,
pub tcpi_snd_wnd: u32,
pub tcpi_snd_bwnd: u32,
pub tcpi_snd_nxt: u32,
pub tcpi_rcv_nxt: u32,
pub tcpi_toe_tid: u32,
pub tcpi_snd_rexmitpack: u32,
pub tcpi_rcv_ooopack: u32,
pub tcpi_snd_zerowin: u32,
pub __tcpi_pad: [u32; 26],
}
}
s_no_extra_traits! {
@@ -1398,7 +1474,7 @@ pub const MS_SYNC: ::c_int = 0x4;
pub const MS_INVALIDATE: ::c_int = 0x2;
// Here because they are not present on OpenBSD
// (https://github.com/openbsd/src/blob/master/sys/sys/resource.h)
// (https://github.com/openbsd/src/blob/HEAD/sys/sys/resource.h)
pub const RLIMIT_SBSIZE: ::c_int = 9;
pub const RLIMIT_AS: ::c_int = 10;
pub const RLIMIT_NTHR: ::c_int = 11;
@@ -1421,7 +1497,15 @@ pub const ENOATTR: ::c_int = 93;
pub const EMULTIHOP: ::c_int = 94;
pub const ENOLINK: ::c_int = 95;
pub const EPROTO: ::c_int = 96;
pub const ELAST: ::c_int = 96;
pub const EOWNERDEAD: ::c_int = 97;
pub const ENOTRECOVERABLE: ::c_int = 98;
#[deprecated(
since = "0.2.143",
note = "This value will always match the highest defined error number \
and thus is not stable. \
See #3040 for more info."
)]
pub const ELAST: ::c_int = 98;
pub const F_DUPFD_CLOEXEC: ::c_int = 12;
pub const F_CLOSEM: ::c_int = 10;
@@ -1465,7 +1549,6 @@ pub const TCP_KEEPIDLE: ::c_int = 3;
pub const TCP_KEEPINTVL: ::c_int = 5;
pub const TCP_KEEPCNT: ::c_int = 6;
pub const TCP_KEEPINIT: ::c_int = 7;
pub const TCP_INFO: ::c_int = 9;
pub const TCP_MD5SIG: ::c_int = 0x10;
pub const TCP_CONGCTL: ::c_int = 0x20;
@@ -1476,6 +1559,7 @@ pub const SOCK_FLAGS_MASK: ::c_int = 0xf0000000;
pub const SO_SNDTIMEO: ::c_int = 0x100b;
pub const SO_RCVTIMEO: ::c_int = 0x100c;
pub const SO_NOSIGPIPE: ::c_int = 0x0800;
pub const SO_ACCEPTFILTER: ::c_int = 0x1000;
pub const SO_TIMESTAMP: ::c_int = 0x2000;
pub const SO_OVERFLOWED: ::c_int = 0x1009;
@@ -1616,6 +1700,7 @@ pub const O_DSYNC: ::c_int = 0x10000;
pub const MAP_RENAME: ::c_int = 0x20;
pub const MAP_NORESERVE: ::c_int = 0x40;
pub const MAP_HASSEMAPHORE: ::c_int = 0x200;
pub const MAP_TRYFIXED: ::c_int = 0x400;
pub const MAP_WIRED: ::c_int = 0x800;
pub const MAP_STACK: ::c_int = 0x2000;
// map alignment aliases for MAP_ALIGNED
@@ -1801,6 +1886,9 @@ pub const MNT_NODEVMTIME: ::c_int = 0x40000000;
pub const MNT_SOFTDEP: ::c_int = 0x80000000;
pub const MNT_POSIX1EACLS: ::c_int = 0x00000800;
pub const MNT_ACLS: ::c_int = MNT_POSIX1EACLS;
pub const MNT_WAIT: ::c_int = 1;
pub const MNT_NOWAIT: ::c_int = 2;
pub const MNT_LAZY: ::c_int = 3;
//<sys/timex.h>
pub const NTP_API: ::c_int = 4;
@@ -1926,6 +2014,9 @@ pub const EVFILT_SIGNAL: u32 = 5;
pub const EVFILT_TIMER: u32 = 6;
pub const EVFILT_VNODE: u32 = 3;
pub const EVFILT_WRITE: u32 = 1;
pub const EVFILT_FS: u32 = 7;
pub const EVFILT_USER: u32 = 8;
pub const EVFILT_EMPTY: u32 = 9;
pub const EV_ADD: u32 = 0x1;
pub const EV_DELETE: u32 = 0x2;
@@ -1940,6 +2031,13 @@ pub const EV_ERROR: u32 = 0x4000;
pub const EV_EOF: u32 = 0x8000;
pub const EV_SYSFLAGS: u32 = 0xf000;
pub const NOTE_TRIGGER: u32 = 0x01000000;
pub const NOTE_FFNOP: u32 = 0x00000000;
pub const NOTE_FFAND: u32 = 0x40000000;
pub const NOTE_FFOR: u32 = 0x80000000;
pub const NOTE_FFCOPY: u32 = 0xc0000000;
pub const NOTE_FFCTRLMASK: u32 = 0xc0000000;
pub const NOTE_FFLAGSMASK: u32 = 0x00ffffff;
pub const NOTE_LOWAT: u32 = 0x00000001;
pub const NOTE_DELETE: u32 = 0x00000001;
pub const NOTE_WRITE: u32 = 0x00000002;
@@ -1956,6 +2054,11 @@ pub const NOTE_PCTRLMASK: u32 = 0xf0000000;
pub const NOTE_TRACK: u32 = 0x00000001;
pub const NOTE_TRACKERR: u32 = 0x00000002;
pub const NOTE_CHILD: u32 = 0x00000004;
pub const NOTE_MSECONDS: u32 = 0x00000000;
pub const NOTE_SECONDS: u32 = 0x00000001;
pub const NOTE_USECONDS: u32 = 0x00000002;
pub const NOTE_NSECONDS: u32 = 0x00000003;
pub const NOTE_ABSTIME: u32 = 0x000000010;
pub const TMP_MAX: ::c_uint = 308915776;
@@ -2162,6 +2265,11 @@ pub const WCONTINUED: ::c_int = 0x00000010;
pub const WEXITED: ::c_int = 0x000000020;
pub const WNOWAIT: ::c_int = 0x00010000;
pub const WALTSIG: ::c_int = 0x00000004;
pub const WALLSIG: ::c_int = 0x00000008;
pub const WTRAPPED: ::c_int = 0x00000040;
pub const WNOZOMBIE: ::c_int = 0x00020000;
pub const P_ALL: idtype_t = 0;
pub const P_PID: idtype_t = 1;
pub const P_PGID: idtype_t = 4;
@@ -2235,13 +2343,6 @@ pub const PT_LWPNEXT: ::c_int = 25;
pub const PT_SET_SIGPASS: ::c_int = 26;
pub const PT_GET_SIGPASS: ::c_int = 27;
pub const PT_FIRSTMACH: ::c_int = 32;
pub const POSIX_SPAWN_RESETIDS: ::c_int = 0x01;
pub const POSIX_SPAWN_SETPGROUP: ::c_int = 0x02;
pub const POSIX_SPAWN_SETSCHEDPARAM: ::c_int = 0x04;
pub const POSIX_SPAWN_SETSCHEDULER: ::c_int = 0x08;
pub const POSIX_SPAWN_SETSIGDEF: ::c_int = 0x10;
pub const POSIX_SPAWN_SETSIGMASK: ::c_int = 0x20;
pub const POSIX_SPAWN_RETURNERROR: ::c_int = 0x40;
// Flags for chflags(2)
@@ -2288,39 +2389,44 @@ pub const LSZOMB: ::c_int = 5;
pub const LSONPROC: ::c_int = 7;
pub const LSSUSPENDED: ::c_int = 8;
pub const _REG_RDI: ::c_int = 0;
pub const _REG_RSI: ::c_int = 1;
pub const _REG_RDX: ::c_int = 2;
pub const _REG_RCX: ::c_int = 3;
pub const _REG_R8: ::c_int = 4;
pub const _REG_R9: ::c_int = 5;
pub const _REG_R10: ::c_int = 6;
pub const _REG_R11: ::c_int = 7;
pub const _REG_R12: ::c_int = 8;
pub const _REG_R13: ::c_int = 9;
pub const _REG_R14: ::c_int = 10;
pub const _REG_R15: ::c_int = 11;
pub const _REG_RBP: ::c_int = 12;
pub const _REG_RBX: ::c_int = 13;
pub const _REG_RAX: ::c_int = 14;
pub const _REG_GS: ::c_int = 15;
pub const _REG_FS: ::c_int = 16;
pub const _REG_ES: ::c_int = 17;
pub const _REG_DS: ::c_int = 18;
pub const _REG_TRAPNO: ::c_int = 19;
pub const _REG_ERR: ::c_int = 20;
pub const _REG_RIP: ::c_int = 21;
pub const _REG_CS: ::c_int = 22;
pub const _REG_RFLAGS: ::c_int = 23;
pub const _REG_RSP: ::c_int = 24;
pub const _REG_SS: ::c_int = 25;
// sys/xattr.h
pub const XATTR_CREATE: ::c_int = 0x01;
pub const XATTR_REPLACE: ::c_int = 0x02;
// sys/extattr.h
pub const EXTATTR_NAMESPACE_EMPTY: ::c_int = 0;
// For getrandom()
pub const GRND_NONBLOCK: ::c_uint = 0x1;
pub const GRND_RANDOM: ::c_uint = 0x2;
pub const GRND_INSECURE: ::c_uint = 0x4;
// sys/reboot.h
pub const RB_ASKNAME: ::c_int = 0x000000001;
pub const RB_SINGLE: ::c_int = 0x000000002;
pub const RB_NOSYNC: ::c_int = 0x000000004;
pub const RB_HALT: ::c_int = 0x000000008;
pub const RB_INITNAME: ::c_int = 0x000000010;
pub const RB_KDB: ::c_int = 0x000000040;
pub const RB_RDONLY: ::c_int = 0x000000080;
pub const RB_DUMP: ::c_int = 0x000000100;
pub const RB_MINIROOT: ::c_int = 0x000000200;
pub const RB_STRING: ::c_int = 0x000000400;
pub const RB_POWERDOWN: ::c_int = RB_HALT | 0x000000800;
pub const RB_USERCONF: ::c_int = 0x000001000;
cfg_if! {
if #[cfg(libc_const_extern_fn)] {
pub const fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int {
alignment << MAP_ALIGNMENT_SHIFT
}
} else {
pub fn MAP_ALIGNED(alignment: ::c_int) -> ::c_int {
alignment << MAP_ALIGNMENT_SHIFT
}
}
}
const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -2333,7 +2439,7 @@ f! {
.offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize)
}
pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length
}
@@ -2383,6 +2489,17 @@ f! {
pub fn PROT_MPROTECT_EXTRACT(x: ::c_int) -> ::c_int {
(x >> 3) & 0x7
}
pub fn major(dev: ::dev_t) -> ::c_int {
(((dev as u32) & 0x000fff00) >> 8) as ::c_int
}
pub fn minor(dev: ::dev_t) -> ::c_int {
let mut res = 0;
res |= ((dev as u32) & 0xfff00000) >> 12;
res |= (dev as u32) & 0x000000ff;
res as ::c_int
}
}
safe_f! {
@@ -2424,41 +2541,11 @@ extern "C" {
) -> ::c_int;
pub fn reallocarr(ptr: *mut ::c_void, number: ::size_t, size: ::size_t) -> ::c_int;
}
#[link(name = "rt")]
extern "C" {
pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_error(aiocbp: *const aiocb) -> ::c_int;
pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t;
#[link_name = "__aio_suspend50"]
pub fn aio_suspend(
aiocb_list: *const *const aiocb,
nitems: ::c_int,
timeout: *const ::timespec,
) -> ::c_int;
pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
pub fn lio_listio(
mode: ::c_int,
aiocb_list: *const *mut aiocb,
nitems: ::c_int,
sevp: *mut sigevent,
) -> ::c_int;
}
extern "C" {
pub fn chflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int;
pub fn fchflags(fd: ::c_int, flags: ::c_ulong) -> ::c_int;
pub fn lchflags(path: *const ::c_char, flags: ::c_ulong) -> ::c_int;
pub fn execvpe(
file: *const ::c_char,
argv: *const *const ::c_char,
envp: *const *const ::c_char,
) -> ::c_int;
pub fn extattr_list_fd(
fd: ::c_int,
attrnamespace: ::c_int,
@@ -2567,7 +2654,7 @@ extern "C" {
host: *mut ::c_char,
hostlen: ::socklen_t,
serv: *mut ::c_char,
sevlen: ::socklen_t,
servlen: ::socklen_t,
flags: ::c_int,
) -> ::c_int;
pub fn mprotect(addr: *mut ::c_void, len: ::size_t, prot: ::c_int) -> ::c_int;
@@ -2651,6 +2738,7 @@ extern "C" {
attr: *const ::pthread_attr_t,
guardsize: *mut ::size_t,
) -> ::c_int;
pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int;
pub fn pthread_attr_getstack(
attr: *const ::pthread_attr_t,
stackaddr: *mut *mut ::c_void,
@@ -2681,12 +2769,6 @@ extern "C" {
timeout: *const ::timespec,
) -> ::c_int;
pub fn sigwaitinfo(set: *const sigset_t, info: *mut siginfo_t) -> ::c_int;
pub fn waitid(
idtype: idtype_t,
id: ::id_t,
infop: *mut ::siginfo_t,
options: ::c_int,
) -> ::c_int;
pub fn duplocale(base: ::locale_t) -> ::locale_t;
pub fn freelocale(loc: ::locale_t);
@@ -2793,82 +2875,36 @@ extern "C" {
ts: *const ::timespec,
sigmask: *const ::sigset_t,
) -> ::c_int;
pub fn ppoll(
fds: *mut ::pollfd,
nfds: ::nfds_t,
ts: *const ::timespec,
sigmask: *const ::sigset_t,
) -> ::c_int;
pub fn getrandom(buf: *mut ::c_void, buflen: ::size_t, flags: ::c_uint) -> ::ssize_t;
pub fn posix_spawn(
pid: *mut ::pid_t,
path: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawnp(
pid: *mut ::pid_t,
file: *const ::c_char,
file_actions: *const ::posix_spawn_file_actions_t,
attrp: *const ::posix_spawnattr_t,
argv: *const *mut ::c_char,
envp: *const *mut ::c_char,
) -> ::c_int;
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> ::c_int;
pub fn posix_spawnattr_getsigdefault(
attr: *const posix_spawnattr_t,
default: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigdefault(
attr: *mut posix_spawnattr_t,
default: *const ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_getsigmask(
attr: *const posix_spawnattr_t,
default: *mut ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_setsigmask(
attr: *mut posix_spawnattr_t,
default: *const ::sigset_t,
) -> ::c_int;
pub fn posix_spawnattr_getflags(
attr: *const posix_spawnattr_t,
flags: *mut ::c_short,
) -> ::c_int;
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: ::c_short) -> ::c_int;
pub fn posix_spawnattr_getpgroup(
attr: *const posix_spawnattr_t,
flags: *mut ::pid_t,
) -> ::c_int;
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: ::pid_t) -> ::c_int;
pub fn posix_spawnattr_getschedpolicy(
attr: *const posix_spawnattr_t,
flags: *mut ::c_int,
) -> ::c_int;
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: ::c_int) -> ::c_int;
pub fn posix_spawnattr_getschedparam(
attr: *const posix_spawnattr_t,
param: *mut ::sched_param,
) -> ::c_int;
pub fn posix_spawnattr_setschedparam(
attr: *mut posix_spawnattr_t,
param: *const ::sched_param,
) -> ::c_int;
pub fn reboot(mode: ::c_int, bootstr: *mut ::c_char) -> ::c_int;
}
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> ::c_int;
pub fn posix_spawn_file_actions_addopen(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
path: *const ::c_char,
oflag: ::c_int,
mode: ::mode_t,
#[link(name = "rt")]
extern "C" {
pub fn aio_read(aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_write(aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_fsync(op: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
pub fn aio_error(aiocbp: *const aiocb) -> ::c_int;
pub fn aio_return(aiocbp: *mut aiocb) -> ::ssize_t;
#[link_name = "__aio_suspend50"]
pub fn aio_suspend(
aiocb_list: *const *const aiocb,
nitems: ::c_int,
timeout: *const ::timespec,
) -> ::c_int;
pub fn posix_spawn_file_actions_addclose(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
) -> ::c_int;
pub fn posix_spawn_file_actions_adddup2(
actions: *mut posix_spawn_file_actions_t,
fd: ::c_int,
newfd: ::c_int,
pub fn aio_cancel(fd: ::c_int, aiocbp: *mut aiocb) -> ::c_int;
pub fn lio_listio(
mode: ::c_int,
aiocb_list: *const *mut aiocb,
nitems: ::c_int,
sevp: *mut sigevent,
) -> ::c_int;
}
@@ -3049,6 +3085,38 @@ extern "C" {
pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry;
}
#[link(name = "execinfo")]
extern "C" {
pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t;
pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char;
pub fn backtrace_symbols_fd(
addrlist: *const *mut ::c_void,
len: ::size_t,
fd: ::c_int,
) -> ::c_int;
pub fn backtrace_symbols_fmt(
addrlist: *const *mut ::c_void,
len: ::size_t,
fmt: *const ::c_char,
) -> *mut *mut ::c_char;
pub fn backtrace_symbols_fd_fmt(
addrlist: *const *mut ::c_void,
len: ::size_t,
fd: ::c_int,
fmt: *const ::c_char,
) -> ::c_int;
}
cfg_if! {
if #[cfg(libc_union)] {
extern {
// these functions use statvfs:
pub fn getmntinfo(mntbufp: *mut *mut ::statvfs, flags: ::c_int) -> ::c_int;
pub fn getvfsstat(buf: *mut statvfs, bufsize: ::size_t, flags: ::c_int) -> ::c_int;
}
}
}
cfg_if! {
if #[cfg(target_arch = "aarch64")] {
mod aarch64;
@@ -3068,6 +3136,12 @@ cfg_if! {
} else if #[cfg(target_arch = "x86")] {
mod x86;
pub use self::x86::*;
} else if #[cfg(target_arch = "mips")] {
mod mips;
pub use self::mips::*;
} else if #[cfg(target_arch = "riscv64")] {
mod riscv64;
pub use self::riscv64::*;
} else {
// Unknown target_arch
}
+21
View File
@@ -0,0 +1,21 @@
use PT_FIRSTMACH;
pub type c_long = i64;
pub type c_ulong = u64;
pub type c_char = u8;
pub type __cpu_simple_lock_nv_t = ::c_int;
cfg_if! {
if #[cfg(libc_const_size_of)] {
#[doc(hidden)]
pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_long>() - 1;
} else {
#[doc(hidden)]
pub const _ALIGNBYTES: usize = 8 - 1;
}
}
pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 0;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 3;
+27
View File
@@ -38,3 +38,30 @@ pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1;
pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2;
pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3;
pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4;
pub const _REG_RDI: ::c_int = 0;
pub const _REG_RSI: ::c_int = 1;
pub const _REG_RDX: ::c_int = 2;
pub const _REG_RCX: ::c_int = 3;
pub const _REG_R8: ::c_int = 4;
pub const _REG_R9: ::c_int = 5;
pub const _REG_R10: ::c_int = 6;
pub const _REG_R11: ::c_int = 7;
pub const _REG_R12: ::c_int = 8;
pub const _REG_R13: ::c_int = 9;
pub const _REG_R14: ::c_int = 10;
pub const _REG_R15: ::c_int = 11;
pub const _REG_RBP: ::c_int = 12;
pub const _REG_RBX: ::c_int = 13;
pub const _REG_RAX: ::c_int = 14;
pub const _REG_GS: ::c_int = 15;
pub const _REG_FS: ::c_int = 16;
pub const _REG_ES: ::c_int = 17;
pub const _REG_DS: ::c_int = 18;
pub const _REG_TRAPNO: ::c_int = 19;
pub const _REG_ERR: ::c_int = 20;
pub const _REG_RIP: ::c_int = 21;
pub const _REG_CS: ::c_int = 22;
pub const _REG_RFLAGS: ::c_int = 23;
pub const _REG_RSP: ::c_int = 24;
pub const _REG_SS: ::c_int = 25;
+274 -17
View File
@@ -7,6 +7,7 @@ pub type sigset_t = ::c_uint;
pub type blksize_t = i32;
pub type fsblkcnt_t = u64;
pub type fsfilcnt_t = u64;
pub type idtype_t = ::c_uint;
pub type pthread_attr_t = *mut ::c_void;
pub type pthread_mutex_t = *mut ::c_void;
pub type pthread_mutexattr_t = *mut ::c_void;
@@ -40,6 +41,10 @@ pub type Elf64_Xword = u64;
pub type ENTRY = entry;
pub type ACTION = ::c_uint;
// spawn.h
pub type posix_spawnattr_t = *mut ::c_void;
pub type posix_spawn_file_actions_t = *mut ::c_void;
cfg_if! {
if #[cfg(target_pointer_width = "64")] {
type Elf_Addr = Elf64_Addr;
@@ -109,7 +114,7 @@ s! {
pub struct mfs_args {
pub fspec: *mut ::c_char,
pub export_info: export_args,
// https://github.com/openbsd/src/blob/master/sys/sys/types.h#L134
// https://github.com/openbsd/src/blob/HEAD/sys/sys/types.h#L134
pub base: *mut ::c_char,
pub size: ::c_ulong,
}
@@ -189,7 +194,7 @@ s! {
pub cr_uid: ::uid_t,
pub cr_gid: ::gid_t,
pub cr_ngroups: ::c_short,
//https://github.com/openbsd/src/blob/master/sys/sys/syslimits.h#L44
//https://github.com/openbsd/src/blob/HEAD/sys/sys/syslimits.h#L44
pub cr_groups: [::gid_t; 16],
}
@@ -498,6 +503,7 @@ s! {
pub p_tid: i32,
pub p_rtableid: u32,
pub p_pledge: u64,
pub p_name: [::c_char; KI_MAXCOMLEN as usize],
}
pub struct kinfo_vmentry {
@@ -531,6 +537,76 @@ s! {
pub key: *mut ::c_char,
pub data: *mut ::c_void,
}
pub struct ifreq {
pub ifr_name: [::c_char; ::IFNAMSIZ],
#[cfg(libc_union)]
pub ifr_ifru: __c_anonymous_ifr_ifru,
#[cfg(not(libc_union))]
pub ifr_ifru: ::sockaddr,
}
pub struct tcp_info {
pub tcpi_state: u8,
pub __tcpi_ca_state: u8,
pub __tcpi_retransmits: u8,
pub __tcpi_probes: u8,
pub __tcpi_backoff: u8,
pub tcpi_options: u8,
pub tcpi_snd_wscale: u8,
pub tcpi_rcv_wscale: u8,
pub tcpi_rto: u32,
pub __tcpi_ato: u32,
pub tcpi_snd_mss: u32,
pub tcpi_rcv_mss: u32,
pub __tcpi_unacked: u32,
pub __tcpi_sacked: u32,
pub __tcpi_lost: u32,
pub __tcpi_retrans: u32,
pub __tcpi_fackets: u32,
pub tcpi_last_data_sent: u32,
pub tcpi_last_ack_sent: u32,
pub tcpi_last_data_recv: u32,
pub tcpi_last_ack_recv: u32,
pub __tcpi_pmtu: u32,
pub __tcpi_rcv_ssthresh: u32,
pub tcpi_rtt: u32,
pub tcpi_rttvar: u32,
pub tcpi_snd_ssthresh: u32,
pub tcpi_snd_cwnd: u32,
pub __tcpi_advmss: u32,
pub __tcpi_reordering: u32,
pub __tcpi_rcv_rtt: u32,
pub tcpi_rcv_space: u32,
pub tcpi_snd_wnd: u32,
pub tcpi_snd_nxt: u32,
pub tcpi_rcv_nxt: u32,
pub tcpi_toe_tid: u32,
pub tcpi_snd_rexmitpack: u32,
pub tcpi_rcv_ooopack: u32,
pub tcpi_snd_zerowin: u32,
pub tcpi_rttmin: u32,
pub tcpi_max_sndwnd: u32,
pub tcpi_rcv_adv: u32,
pub tcpi_rcv_up: u32,
pub tcpi_snd_una: u32,
pub tcpi_snd_up: u32,
pub tcpi_snd_wl1: u32,
pub tcpi_snd_wl2: u32,
pub tcpi_snd_max: u32,
pub tcpi_ts_recent: u32,
pub tcpi_ts_recent_age: u32,
pub tcpi_rfbuf_cnt: u32,
pub tcpi_rfbuf_ts: u32,
pub tcpi_so_rcv_sb_cc: u32,
pub tcpi_so_rcv_sb_hiwat: u32,
pub tcpi_so_rcv_sb_lowat: u32,
pub tcpi_so_rcv_sb_wat: u32,
pub tcpi_so_snd_sb_cc: u32,
pub tcpi_so_snd_sb_hiwat: u32,
pub tcpi_so_snd_sb_lowat: u32,
pub tcpi_so_snd_sb_wat: u32,
}
}
impl siginfo_t {
@@ -538,12 +614,46 @@ impl siginfo_t {
self.si_addr
}
pub unsafe fn si_code(&self) -> ::c_int {
self.si_code
}
pub unsafe fn si_errno(&self) -> ::c_int {
self.si_errno
}
pub unsafe fn si_pid(&self) -> ::pid_t {
#[repr(C)]
struct siginfo_timer {
_si_signo: ::c_int,
_si_code: ::c_int,
_si_errno: ::c_int,
_pad: [::c_int; SI_PAD],
_pid: ::pid_t,
}
(*(self as *const siginfo_t as *const siginfo_timer))._pid
}
pub unsafe fn si_uid(&self) -> ::uid_t {
#[repr(C)]
struct siginfo_timer {
_si_signo: ::c_int,
_si_code: ::c_int,
_si_errno: ::c_int,
_pad: [::c_int; SI_PAD],
_pid: ::pid_t,
_uid: ::uid_t,
}
(*(self as *const siginfo_t as *const siginfo_timer))._uid
}
pub unsafe fn si_value(&self) -> ::sigval {
#[repr(C)]
struct siginfo_timer {
_si_signo: ::c_int,
_si_errno: ::c_int,
_si_code: ::c_int,
_si_errno: ::c_int,
_pad: [::c_int; SI_PAD],
_pid: ::pid_t,
_uid: ::uid_t,
value: ::sigval,
@@ -606,6 +716,18 @@ s_no_extra_traits! {
align: [::c_char; 160],
}
#[cfg(libc_union)]
pub union __c_anonymous_ifr_ifru {
pub ifru_addr: ::sockaddr,
pub ifru_dstaddr: ::sockaddr,
pub ifru_broadaddr: ::sockaddr,
pub ifru_flags: ::c_short,
pub ifru_metric: ::c_int,
pub ifru_vnetid: i64,
pub ifru_media: u64,
pub ifru_data: ::caddr_t,
pub ifru_index: ::c_uint,
}
}
cfg_if! {
@@ -812,6 +934,60 @@ cfg_if! {
unsafe { self.align.hash(state) };
}
}
#[cfg(libc_union)]
impl PartialEq for __c_anonymous_ifr_ifru {
fn eq(&self, other: &__c_anonymous_ifr_ifru) -> bool {
unsafe {
self.ifru_addr == other.ifru_addr
&& self.ifru_dstaddr == other.ifru_dstaddr
&& self.ifru_broadaddr == other.ifru_broadaddr
&& self.ifru_flags == other.ifru_flags
&& self.ifru_metric == other.ifru_metric
&& self.ifru_vnetid == other.ifru_vnetid
&& self.ifru_media == other.ifru_media
&& self.ifru_data == other.ifru_data
&& self.ifru_index == other.ifru_index
}
}
}
#[cfg(libc_union)]
impl Eq for __c_anonymous_ifr_ifru {}
#[cfg(libc_union)]
impl ::fmt::Debug for __c_anonymous_ifr_ifru {
fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
f.debug_struct("__c_anonymous_ifr_ifru")
.field("ifru_addr", unsafe { &self.ifru_addr })
.field("ifru_dstaddr", unsafe { &self.ifru_dstaddr })
.field("ifru_broadaddr", unsafe { &self.ifru_broadaddr })
.field("ifru_flags", unsafe { &self.ifru_flags })
.field("ifru_metric", unsafe { &self.ifru_metric })
.field("ifru_vnetid", unsafe { &self.ifru_vnetid })
.field("ifru_media", unsafe { &self.ifru_media })
.field("ifru_data", unsafe { &self.ifru_data })
.field("ifru_index", unsafe { &self.ifru_index })
.finish()
}
}
#[cfg(libc_union)]
impl ::hash::Hash for __c_anonymous_ifr_ifru {
fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
unsafe {
self.ifru_addr.hash(state);
self.ifru_dstaddr.hash(state);
self.ifru_broadaddr.hash(state);
self.ifru_flags.hash(state);
self.ifru_metric.hash(state);
self.ifru_vnetid.hash(state);
self.ifru_media.hash(state);
self.ifru_data.hash(state);
self.ifru_index.hash(state);
}
}
}
}
}
@@ -997,6 +1173,8 @@ pub const SO_NETPROC: ::c_int = 0x1020;
pub const SO_RTABLE: ::c_int = 0x1021;
pub const SO_PEERCRED: ::c_int = 0x1022;
pub const SO_SPLICE: ::c_int = 0x1023;
pub const SO_DOMAIN: ::c_int = 0x1024;
pub const SO_PROTOCOL: ::c_int = 0x1025;
// sys/netinet/in.h
// Protocols (RFC 1700)
@@ -1071,6 +1249,8 @@ pub const IP_RECVIF: ::c_int = 30;
pub const TCP_MD5SIG: ::c_int = 0x04;
pub const TCP_NOPUSH: ::c_int = 0x10;
pub const MSG_WAITFORONE: ::c_int = 0x1000;
pub const AF_ECMA: ::c_int = 8;
pub const AF_ROUTE: ::c_int = 17;
pub const AF_ENCAP: ::c_int = 28;
@@ -1115,6 +1295,7 @@ pub const O_DSYNC: ::c_int = 128;
pub const MAP_RENAME: ::c_int = 0x0000;
pub const MAP_NORESERVE: ::c_int = 0x0000;
pub const MAP_HASSEMAPHORE: ::c_int = 0x0000;
pub const MAP_TRYFIXED: ::c_int = 0;
pub const EIPSEC: ::c_int = 82;
pub const ENOMEDIUM: ::c_int = 85;
@@ -1278,13 +1459,15 @@ pub const PTHREAD_MUTEX_NORMAL: ::c_int = 3;
pub const PTHREAD_MUTEX_STRICT_NP: ::c_int = 4;
pub const PTHREAD_MUTEX_DEFAULT: ::c_int = PTHREAD_MUTEX_STRICT_NP;
pub const EVFILT_AIO: i16 = -3;
pub const EVFILT_PROC: i16 = -5;
pub const EVFILT_READ: i16 = -1;
pub const EVFILT_WRITE: i16 = -2;
pub const EVFILT_AIO: i16 = -3;
pub const EVFILT_VNODE: i16 = -4;
pub const EVFILT_PROC: i16 = -5;
pub const EVFILT_SIGNAL: i16 = -6;
pub const EVFILT_TIMER: i16 = -7;
pub const EVFILT_VNODE: i16 = -4;
pub const EVFILT_WRITE: i16 = -2;
pub const EVFILT_DEVICE: i16 = -8;
pub const EVFILT_EXCEPT: i16 = -9;
pub const EV_ADD: u16 = 0x1;
pub const EV_DELETE: u16 = 0x2;
@@ -1303,6 +1486,7 @@ pub const EV_SYSFLAGS: u16 = 0xf800;
pub const NOTE_LOWAT: u32 = 0x00000001;
pub const NOTE_EOF: u32 = 0x00000002;
pub const NOTE_OOB: u32 = 0x00000004;
pub const NOTE_DELETE: u32 = 0x00000001;
pub const NOTE_WRITE: u32 = 0x00000002;
pub const NOTE_EXTEND: u32 = 0x00000004;
@@ -1319,6 +1503,7 @@ pub const NOTE_PCTRLMASK: u32 = 0xf0000000;
pub const NOTE_TRACK: u32 = 0x00000001;
pub const NOTE_TRACKERR: u32 = 0x00000002;
pub const NOTE_CHILD: u32 = 0x00000004;
pub const NOTE_CHANGE: u32 = 0x00000001;
pub const TMP_MAX: ::c_uint = 0x7fffffff;
@@ -1507,7 +1692,7 @@ pub const OLCUC: ::tcflag_t = 0x20;
pub const ONOCR: ::tcflag_t = 0x40;
pub const ONLRET: ::tcflag_t = 0x80;
//https://github.com/openbsd/src/blob/master/sys/sys/mount.h
//https://github.com/openbsd/src/blob/HEAD/sys/sys/mount.h
pub const ISOFSMNT_NORRIP: ::c_int = 0x1; // disable Rock Ridge Ext
pub const ISOFSMNT_GENS: ::c_int = 0x2; // enable generation numbers
pub const ISOFSMNT_EXTATT: ::c_int = 0x4; // enable extended attr
@@ -1568,10 +1753,13 @@ pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2;
pub const TMPFS_ARGS_VERSION: ::c_int = 1;
const SI_MAXSZ: ::size_t = 128;
const SI_PAD: ::size_t = (SI_MAXSZ / ::mem::size_of::<::c_int>()) - 3;
pub const MAP_STACK: ::c_int = 0x4000;
pub const MAP_CONCEAL: ::c_int = 0x8000;
// https://github.com/openbsd/src/blob/master/sys/net/if.h#L187
// https://github.com/openbsd/src/blob/HEAD/sys/net/if.h#L187
pub const IFF_UP: ::c_int = 0x1; // interface is up
pub const IFF_BROADCAST: ::c_int = 0x2; // broadcast address valid
pub const IFF_DEBUG: ::c_int = 0x4; // turn on debugging
@@ -1610,7 +1798,15 @@ pub const BIOCSDLT: ::c_ulong = 0x8004427a;
pub const PTRACE_FORK: ::c_int = 0x0002;
pub const WCONTINUED: ::c_int = 8;
pub const WCONTINUED: ::c_int = 0x08;
pub const WEXITED: ::c_int = 0x04;
pub const WSTOPPED: ::c_int = 0x02; // same as WUNTRACED
pub const WNOWAIT: ::c_int = 0x10;
pub const WTRAPPED: ::c_int = 0x20;
pub const P_ALL: ::idtype_t = 0;
pub const P_PGID: ::idtype_t = 1;
pub const P_PID: ::idtype_t = 2;
// search.h
pub const FIND: ::ACTION = 0;
@@ -1639,6 +1835,30 @@ pub const SF_ARCHIVED: ::c_uint = 0x00010000;
pub const SF_IMMUTABLE: ::c_uint = 0x00020000;
pub const SF_APPEND: ::c_uint = 0x00040000;
// sys/exec_elf.h - Legal values for p_type (segment type).
pub const PT_NULL: u32 = 0;
pub const PT_LOAD: u32 = 1;
pub const PT_DYNAMIC: u32 = 2;
pub const PT_INTERP: u32 = 3;
pub const PT_NOTE: u32 = 4;
pub const PT_SHLIB: u32 = 5;
pub const PT_PHDR: u32 = 6;
pub const PT_TLS: u32 = 7;
pub const PT_LOOS: u32 = 0x60000000;
pub const PT_HIOS: u32 = 0x6fffffff;
pub const PT_LOPROC: u32 = 0x70000000;
pub const PT_HIPROC: u32 = 0x7fffffff;
pub const PT_GNU_EH_FRAME: u32 = 0x6474e550;
pub const PT_GNU_RELRO: u32 = 0x6474e552;
// sys/exec_elf.h - Legal values for p_flags (segment flags).
pub const PF_X: u32 = 0x1;
pub const PF_W: u32 = 0x2;
pub const PF_R: u32 = 0x4;
pub const PF_MASKOS: u32 = 0x0ff00000;
pub const PF_MASKPROC: u32 = 0xf0000000;
// sys/mount.h
pub const MNT_NOPERM: ::c_int = 0x00000020;
pub const MNT_WXALLOWED: ::c_int = 0x00000800;
@@ -1659,6 +1879,12 @@ pub const MNT_WAIT: ::c_int = 1;
pub const MNT_NOWAIT: ::c_int = 2;
pub const MNT_LAZY: ::c_int = 3;
// sys/_time.h
pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 2;
pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 4;
pub const CLOCK_UPTIME: ::clockid_t = 5;
pub const CLOCK_BOOTTIME: ::clockid_t = 6;
pub const LC_COLLATE_MASK: ::c_int = 1 << ::LC_COLLATE;
pub const LC_CTYPE_MASK: ::c_int = 1 << ::LC_CTYPE;
pub const LC_MONETARY_MASK: ::c_int = 1 << ::LC_MONETARY;
@@ -1671,6 +1897,25 @@ pub const LC_ALL_MASK: ::c_int = (1 << _LC_LAST) - 2;
pub const LC_GLOBAL_LOCALE: ::locale_t = -1isize as ::locale_t;
// sys/reboot.h
pub const RB_ASKNAME: ::c_int = 0x00001;
pub const RB_SINGLE: ::c_int = 0x00002;
pub const RB_NOSYNC: ::c_int = 0x00004;
pub const RB_HALT: ::c_int = 0x00008;
pub const RB_INITNAME: ::c_int = 0x00010;
pub const RB_KDB: ::c_int = 0x00040;
pub const RB_RDONLY: ::c_int = 0x00080;
pub const RB_DUMP: ::c_int = 0x00100;
pub const RB_MINIROOT: ::c_int = 0x00200;
pub const RB_CONFIG: ::c_int = 0x00400;
pub const RB_TIMEBAD: ::c_int = 0x00800;
pub const RB_POWERDOWN: ::c_int = 0x01000;
pub const RB_SERCONS: ::c_int = 0x02000;
pub const RB_USERREQ: ::c_int = 0x04000;
pub const RB_RESET: ::c_int = 0x08000;
pub const RB_GOODRANDOM: ::c_int = 0x10000;
pub const RB_UNHIBERNATE: ::c_int = 0x20000;
const_fn! {
{const} fn _ALIGN(p: usize) -> usize {
(p + _ALIGNBYTES) & !_ALIGNBYTES
@@ -1683,7 +1928,7 @@ f! {
.offset(_ALIGN(::mem::size_of::<::cmsghdr>()) as isize)
}
pub fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
pub {const} fn CMSG_LEN(length: ::c_uint) -> ::c_uint {
_ALIGN(::mem::size_of::<::cmsghdr>()) as ::c_uint + length
}
@@ -1709,6 +1954,19 @@ f! {
(_ALIGN(::mem::size_of::<::cmsghdr>()) + _ALIGN(length as usize))
as ::c_uint
}
pub fn major(dev: ::dev_t) -> ::c_uint{
((dev as ::c_uint) >> 8) & 0xff
}
pub fn minor(dev: ::dev_t) -> ::c_uint {
let dev = dev as ::c_uint;
let mut res = 0;
res |= (dev) & 0xff;
res |= ((dev) & 0xffff0000) >> 8;
res
}
}
safe_f! {
@@ -1742,11 +2000,6 @@ safe_f! {
extern "C" {
pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::timezone) -> ::c_int;
pub fn settimeofday(tp: *const ::timeval, tz: *const ::timezone) -> ::c_int;
pub fn execvpe(
file: *const ::c_char,
argv: *const *const ::c_char,
envp: *const *const ::c_char,
) -> ::c_int;
pub fn pledge(promises: *const ::c_char, execpromises: *const ::c_char) -> ::c_int;
pub fn unveil(path: *const ::c_char, permissions: *const ::c_char) -> ::c_int;
pub fn strtonum(
@@ -1790,6 +2043,7 @@ extern "C" {
attr: *const ::pthread_attr_t,
guardsize: *mut ::size_t,
) -> ::c_int;
pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int;
pub fn pthread_attr_getstack(
attr: *const ::pthread_attr_t,
stackaddr: *mut *mut ::c_void,
@@ -1822,7 +2076,6 @@ extern "C" {
newp: *mut ::c_void,
newlen: ::size_t,
) -> ::c_int;
pub fn getentropy(buf: *mut ::c_void, buflen: ::size_t) -> ::c_int;
pub fn setresgid(rgid: ::gid_t, egid: ::gid_t, sgid: ::gid_t) -> ::c_int;
pub fn setresuid(ruid: ::uid_t, euid: ::uid_t, suid: ::uid_t) -> ::c_int;
pub fn ptrace(request: ::c_int, pid: ::pid_t, addr: caddr_t, data: ::c_int) -> ::c_int;
@@ -1888,6 +2141,10 @@ extern "C" {
timeout: *const ::timespec,
uaddr2: *mut u32,
) -> ::c_int;
pub fn mimmutable(addr: *mut ::c_void, len: ::size_t) -> ::c_int;
pub fn reboot(mode: ::c_int) -> ::c_int;
}
#[link(name = "execinfo")]

Some files were not shown because too many files have changed in this diff Show More